RDFa 1.1 Processor Conformance

EARL results from the RDFa 1.1 Test Suite

Unofficial Draft 23 April 2012

Editor:
Gregg Kellogg, Kellogg Associates
Authors:
Gregg Kellogg, Kellogg Associates
Iván Herman, W3C
Manu Sporny, Digital Bazaar

Abstract

This document reports processor conformance for [RDFA-CORE] and related specifications according to the requirements of the Evaluation and Report Language (EARL) 1.0 Schema [EARL10-SCHEMA].

This document describes RDFa Test Suite running at http://rdfa.info/ .

This report is also available in alternate formats: Turtle and JSON-LD

Status of This Document

This document is merely a public working draft of a potential specification. It has no official standing of any kind and does not represent the support or consensus of any standards organisation.

Table of Contents

1. RDFa 1.1

RDFa Core 1.1 [RDFA-CORE] defines core processing rules for independent of host language, and provides default processing rules for XML-based host languages.

1.1 XHTML1

XHTML+RDFa 1.1 [XHTML-RDFA] extends RDFa Core 1.1 [RDFA-CORE] with host-language specific processing rules.
Test any23 clj-rdfa librdfa pyRdfa RDF::RDFa
0001 Predicate establishment with @property Tests @property to establish the predicate; literal object is in the content of the element. PASS PASS PASS PASS PASS
0006 @rel and @rev Tests @rev and @rel together, with the object being specified by @href, ignoring content PASS PASS PASS PASS PASS
0007 @rel, @rev, @property, @content Tests @rel, @rev, @property, and @content together to generate several RDF triples. PASS PASS PASS PASS PASS
0008 empty string @about Tests empty @about. PASS PASS PASS PASS PASS
0009 @rev Tests @rev. PASS PASS PASS PASS PASS
0010 @rel, @rev, @href Tests @rel, @rev, and @href to generate two RDF triples. PASS PASS PASS PASS PASS
0012 @xml:lang Tests @xml:lang FAIL PASS PASS PASS PASS
0013 @xml:lang inheritance Tests @xml:lang inheritance FAIL PASS PASS PASS PASS
0014 @datatype, xsd:integer Tests setting the @datatype to xsd:integer PASS PASS PASS PASS PASS
0015 meta and link Tests meta and link with no parent @about PASS PASS PASS PASS PASS
0017 Related blanknodes Tests creation of statements involving explicitly created blank nodes. PASS PASS PASS PASS PASS
0018 @rel for predicate Tests @rel to establish predicate. PASS PASS PASS PASS PASS
0019 @about for subject Tests @about to establish subject. PASS PASS PASS PASS PASS
0020 Inheriting @about for subject Tests @about inheritance to establish subject. PASS PASS PASS PASS PASS
0021 Subject inheritance with no @about Tests inheritance of subject when no @about can be found PASS PASS PASS PASS PASS
0023 @id does not generate subjects Tests that @id does not generate subjects PASS PASS PASS PASS PASS
0025 simple chaining test Tests simple chaining with cascade of @resource and @property PASS PASS PASS PASS PASS
0026 @content Tests @content for literal object PASS PASS PASS PASS PASS
0027 @content, ignore element content Tests @content for literal object, overriding element content. PASS PASS PASS PASS PASS
0029 markup stripping with @datatype Tests markup stripping from a span element with @datatype=xsd:string PASS PASS PASS PASS PASS
0030 omitted @about Tests omitted @about. PASS PASS PASS PASS PASS
0031 simple @resource Tests if @resource sets URIref object correct. PASS PASS PASS PASS PASS
0032 @resource overrides @href Tests if @resource overrides @href to set the URIref object. PASS PASS PASS PASS PASS
0033 simple chaining test with bNode Tests simple chaining with cascade of bNode and @property PASS PASS PASS PASS PASS
0034 simple img[@src] test Tests if a @src (in img element) correctly sets the URIref object PASS PASS PASS PASS PASS
0035 @src/@href test Tests if @href overwrites @src PASS PASS PASS PASS PASS
0036 @src/@resource test Tests if @resource overwrites @src PASS PASS PASS PASS PASS
0037 @src/@href/@resource test Tests if @resource overwrites both @href and @src PASS PASS PASS PASS PASS
0038 @rev - img[@src] test Tests if a @src (in img element) correctly sets the URIref subject (due to @rev) PASS PASS PASS PASS PASS
0039 @rev - @src/@href test Tests if @href overwrites @src correctly to set the URIref subject (due to @rev) PASS PASS PASS PASS PASS
0041 @rev - @src/@href/@resource test Tests if @resource overwrites both @href and @src correctly to set the URIref subject (due to @rev) PASS PASS PASS PASS PASS
0048 @typeof with @about and @rel present, no @resource Tests @typeof with @about and @rel present, no @resource PASS PASS PASS PASS PASS
0049 @typeof with @about, no @rel or @resource Tests @typeof with @about, no @rel or @resource PASS PASS PASS PASS PASS
0050 @typeof without anything else Tests @typeof without anything else PASS PASS PASS PASS PASS
0051 @typeof with a single @property Tests @typeof with a single @property PASS PASS PASS PASS PASS
0052 @typeof with @resource and nothing else Tests to ensure that @typeof does not apply to @resource PASS PASS PASS PASS PASS
0053 @typeof with @resource and nothing else, with a subelement Tests to make sure that @typeof does not apply to @resource, but @resource sets the subject for the next triple to be generated PASS PASS PASS PASS PASS
0054 multiple @property Tests multiple @property separated by white spaces PASS PASS PASS PASS PASS
0055 multiple @rel Tests multiple @rel separated by white spaces PASS PASS PASS PASS PASS
0056 @typeof applies to @about on same element with hanging rel Tests if @typeof applies to @about on same element with hanging @rel PASS PASS PASS PASS PASS
0057 hanging @rel creates multiple triples Tests if hanging @rel creates multiple triples PASS PASS PASS PASS PASS
0059 multiple hanging @rels with multiple children Tests multiple hanging @rels with multiple children PASS PASS PASS PASS PASS
0060 UTF-8 conformance Tests conformance with UTF-8 encoding PASS PASS PASS PASS PASS
0061 @rel in head using reserved, non-prefixed XHTML value Tests @rel in head using reserved, non-prefixed XHTML value PASS PASS PASS PASS PASS
0062 @rev in head using reserved, non-prefixed XHTML value Tests @rev in head using reserved, non-prefixed XHTML value PASS PASS PASS PASS PASS
0063 @rel in head using reserved XHTML value and empty-prefix CURIE syntax Tests @rel in head using reserved XHTML value and empty-prefix CURIE syntax PASS PASS PASS PASS PASS
0064 @about with safe CURIE Tests if @about generates a proper triple when a safe CURIE is used PASS PASS PASS PASS PASS
0065 @rel with safe CURIE Tests if @rel properly connects triples generated when safe CURIEs are used PASS PASS PASS PASS PASS
0066 @about with @typeof in the head Test to make sure that @about (with current document) is implied in the head, and the proper triples are generated using @typeof FAIL PASS PASS PASS PASS
0067 @property in the head Test to make sure that @property in head uses the implied current document as the subject if no other subject is specified PASS PASS PASS PASS PASS
0068 Relative URI in @about Tests to ensure that relative URI is resolved correctly when used in @about PASS PASS PASS PASS PASS
0069 Relative URI in @href Tests to ensure that relative URI is resolved correctly when used in @href PASS PASS PASS PASS PASS
0070 Relative URI in @resource Tests to ensure that relative URI is resolved correctly when used in @resource PASS PASS PASS PASS PASS
0071 No explicit @about Tests to ensure that a triple is generated even if @typeof and @about is not specified anywhere in the document PASS PASS PASS PASS PASS
0072 Relative URI in @about (with XHTML base in head) Tests to ensure that relative URIs are resolved correctly when used in @about with XHTML base set in head PASS PASS PASS PASS PASS
0073 Relative URI in @resource (with XHTML base in head) Tests to ensure that relative URIs are resolved correctly when used in @resource with XHTML base set in head PASS PASS PASS PASS PASS
0074 Relative URI in @href (with XHTML base in head) Tests to ensure that relative URIs are resolved correctly when used in @href with XHTML base set in head PASS PASS PASS PASS PASS
0075 Reserved word 'license' in @rel with no explizit @about Tests to ensure that the XHTML+RDFa reserved word 'license' when used in @rel (with no @about) generates the proper triple PASS PASS PASS PASS PASS
0076 All reserved XHTML @rel values Tests to ensure that all reserved XHTML words are supported in @rel PASS PASS PASS PASS PASS
0077 All reserved XHTML @rev values Tests to ensure that all reserved XHTML words are supported in @rev PASS PASS PASS PASS PASS
0079 @resource and @href in completing incomplete triples Tests role of @resource and @href in completing incomplete triples (including their mutual priorities) FAIL PASS PASS PASS PASS
0080 @about overrides @resource in incomplete triples Tests if @about has a higher priority than @resource in handling incomplete triples PASS PASS PASS PASS PASS
0083 multiple ways of handling incomplete triples (merged) Tests multiple ways of handling incomplete triples; the first two triples should use the same bNode as subject ('merged'); the third case should use @about PASS PASS PASS PASS PASS
0084 multiple ways of handling incomplete triples, this time with both @rel and @rev Tests multiple ways of handling incomplete triples, this time with both @rel and @rev. There is an intermediate div that should be ignored by the process PASS PASS PASS PASS PASS
0085 @resource and @href in completing incomplete triples Tests the role of @resource and @href in completing incomplete triples (including their mutual priorities), but with an intermediate layer (ie, bNode) added FAIL PASS PASS PASS PASS
0087 All reserved XHTML @rel values (with :xxx) Tests to ensure that all reserved XHTML words are supported in @rel (with :xxx) PASS PASS PASS PASS PASS
0088 Interpretation of the CURIE "_:" Test the interpretation of the CURIE "_:" PASS PASS PASS PASS PASS
0089 @src sets a new subject (@typeof) Tests to ensure that @src sets a new subject (focuses on @typeof). PASS PASS PASS PASS PASS
0091 Non-reserved, un-prefixed CURIE in @property Tests to ensure that non-reserved, un-prefixed CURIEs, when used in @property, generate triples. PASS PASS PASS PASS PASS
0093 Tests XMLLiteral content with explicit @datatype (user-data-typed literal) Tests the explicit specification of an RDF XMLLiteral with @datatype using a non-RDF namespace, yielding a user-data-typed literal PASS PASS PASS PASS PASS
0099 Preservation of white space in literals Tests the preservation of white space in literals. FAIL PASS PASS PASS PASS
0104 rdf:value Tests rdf:value with blank nodes to give a value with a unit PASS PASS PASS PASS PASS
0106 chaining with empty value in inner @rel Tests the behavior of triple generation in the case where the inner @rel is defined, but is blank, which halts chaining. PASS PASS PASS PASS PASS
0107 no garbage collecting bnodes Checks to make sure that that while we shouldn't garbage collect bnodes no triples are generated. FAIL PASS PASS PASS PASS
0108 plain literal with datatype="" and xml:lang preservation Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "" and preserves the xml:lang value. The text, with control characters and whitespace preserved, reads "Greek white space ". FAIL PASS PASS PASS PASS
0109 Tests to ensure @xml:base is ignored Tests to make sure that @xml:base is ignored in XHTML+RDFa 1.0. The input test document is invalid XHTML. PASS PASS PASS PASS PASS
0110 bNode generated even though no nested @about exists Tests to make sure that a bNode is generated even though no nested @about exists. PASS PASS PASS PASS PASS
0111 two bNodes generated after three levels of nesting Tests to make sure that two bNodes are generated after three levels of nesting and that the last div does not generate a triple. PASS PASS PASS PASS PASS
0112 plain literal with datatype="" Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "". FAIL PASS PASS PASS PASS
0113 element with @property and no child nodes generates empty plain literal Checks to make sure that an element with @property and no child nodes generates empty plain literal. PASS PASS PASS PASS PASS
0114 Relative URI dot-segment removal Checks to make sure that a relative URI is resolved correctly according to RFC3986, section 5 (even when the relative URI is invalid, in this case). FAIL PASS PASS PASS PASS
0115 XML Entities must be supported by RDFa parser Checks to make sure that XML Entities are treated properly by the RDFa parser. PASS PASS PASS PASS PASS
0117 Fragment identifiers stripped from BASE Checks to make sure that fragment identifiers are stripped from [base] when used to generate triples. FAIL PASS PASS PASS PASS
0118 empty string "" is not equivalent to NULL - @about Checks to make sure that the empty string "" isn't considered as NULL in languages such as Javascript when generating triples. This test sets the subject in a chain using @href and then immediately changes the subject using @about and generates a triple. A buggy parser may use the @href subject (http://example.org/javascript.html) instead of the one defined by @about. PASS PASS PASS PASS PASS
0119 "[prefix:]" CURIE format is valid Checks to make sure that an RDFa processor expands CURIEs having only a prefix and a colon if a prefix is properly defined using xmlns. PASS PASS PASS PASS PASS
0120 "[:]" CURIE format is valid Checks to make sure that an RDFa processor expands CURIEs having only a colon to the default prefix "http://www.w3.org/1999/test-cases/vocab#". FAIL PASS PASS PASS PASS
0121 "[]" is a valid safe CURIE Checks to make sure RDFa processors resolve the empty CURIE correctly. Note that this is not valid HTML due to recursive FAIL PASS PASS PASS PASS
0122 resource="[]" does not set the object Checks to make sure that resource="[]" does not set the object since RDFa does not allow non-prefixed CURIEs. PASS PASS PASS PASS PASS
0126 Multiple @typeof values Checks to ensure that multiple (white space separated) values in @typeof trigger multiple rdf:type triples. PASS PASS PASS PASS PASS
0131 Whitespace alternatives in attributes Ensures that multiple whitespace alternatives in attributes are allowed. PASS PASS PASS PASS PASS
0134 Uppercase reserved words Ensures that mixed-case reserved words generate triples. FAIL PASS PASS PASS PASS
0140 Blank nodes identifiers are not allowed as predicates The RDF data model does not allow blank node identifiers in predicates. This test ensures that RDFa processors do not emit invalid triples. PASS PASS PASS PASS PASS
0147 xmlns prefix 'xmlzzz' (reserved) Ensures that RDFa processors allow the prefix 'xmlzzz', even though it is a reserved prefix in XML. PASS PASS PASS PASS PASS
0172 @datatype="" generates plain literal in presence of child nodes Checks to ensure that when @datatype="" is used on an element that contains child nodes, that the literal that is generated is a plain literal. FAIL PASS PASS PASS PASS
0173 @xml:lang="" clears language setting Checks to ensure that when @xml:lang="" is used that any parent element language setting is cleared and a language-less literal is generated. PASS PASS PASS PASS PASS
0174 Support single character prefix in CURIEs Checks to ensure that the RDFa processor correctly processes single character prefixes when processing CURIEs. PASS PASS PASS PASS PASS
0175 IRI for @property is allowed Checks to make sure that a URI may be used as a @property value FAIL PASS PASS PASS PASS
0176 IRI for @rel and @rev is allowed Checks to make sure that a URI may be used as @rel and @rev values FAIL PASS PASS PASS PASS
0177 Test @prefix Checks to make sure @prefix with a single entry creates a URI mapping FAIL PASS PASS PASS PASS
0178 Test @prefix with multiple mappings Checks to make sure @prefix with multiple entires creates multiple URI mappings FAIL PASS PASS PASS PASS
0179 Test @prefix vs @xmlns priority Checks to make sure @prefix has a higher priority than @xmlns FAIL PASS PASS PASS PASS
0180 Test @prefix with empty mapping Checks to make sure @prefix with empty prefix does not create a mapping. PASS PASS PASS PASS PASS
0181 Test default XHTML vocabulary Checks Tests a CURIE with default namespace uses XHTML Vocabulary namespace. PASS PASS PASS PASS PASS
0182 Test prefix locality Checks to be sure that prefixes are defined within the element hierarchy. FAIL PASS PASS PASS PASS
0183 Test @xmlns redefines @prefix A new @xmlns definition should override a previous @prefix definition at this element. FAIL PASS PASS PASS PASS
0186 @vocab after subject declaration Check that @vocab establishes a new default vocabulary when declared on the same element as a subject declaration via @about. FAIL PASS PASS PASS PASS
0187 @vocab redefinition Check that a more deeply nested @vocab attribute overloads a previous @vocab definition. FAIL PASS PASS PASS PASS
0188 @vocab only affects predicates Check that @vocab definitions on parent elements only affect predicate establishment. FAIL PASS PASS PASS PASS
0189 @vocab overrides default term Check that @vocab changes a default term from XHV. Lookup checks default vocabulary before local term mappings. FAIL PASS PASS PASS PASS
0190 Test term case insensitivity Check to ensure a mixed case term matches a case insensitive definition FAIL PASS PASS PASS PASS
0196 Test process explicit XMLLiteral XMLLiteral must be explicitly specified, otherwise a normal untyped literal is created PASS PASS PASS PASS PASS
0197 Test TERMorCURIEorAbsURI requires an absolute URI TERMorCURIEorAbsURI requires an absolute URI FAIL PASS PASS PASS PASS
0198 datatype XMLLiteral with other embedded RDFa Checks to ensure that when datatype is the default the parser generates triples for embedded content. FAIL PASS PASS PASS PASS
0206 Usage of Initial Context Tests whether the default RDFa 1.1 context (which contains prefix definitions, among others, to the Semantic Web Standard vocabularies) is properly handled. FAIL PASS PASS PASS PASS
0207 Vevent using @typeof Tests Vevent using @typeof (inlc. dtstart, dtend, etc.) PASS PASS PASS PASS PASS
0213 Datatype generation for a literal with XML content, version 1.1 In RDFa 1.1, even if a literal contains XML elements, and no explicit datatype is set, the result is plain literal FAIL PASS PASS PASS PASS
0214 Root element has implicit @about="" All documents have an implicit @about="" FAIL PASS PASS PASS PASS
0216 Proper character encoding detection in spite of large headers Character encoding should work even in view of a large set of characters as attributes in the header, ie, when content sniffing may not work to establish encoding. FAIL PASS PASS PASS PASS
0217 @vocab causes rdfa:usesVocabulary triple to be added When encountering @vocab, a processor generates a triple with the base URI, rdfa:usesVocabulary and the IRI of the added vocabulary. FAIL PASS PASS PASS PASS
0218 @inlist to create empty list @inlist on @rel with no incomplete triples creates an empty list. FAIL PASS PASS PASS PASS
0219 @inlist with literal @inlist with @property creates a list having a literal as a single element. FAIL PASS PASS PASS PASS
0220 @inlist with IRI @inlist with @rel and @href creates a list having an IRI as a single element. FAIL PASS PASS PASS PASS
0221 @inlist with hetrogenious membership @inlist with @rel and @property creates a list with both IRI and Literal elements. FAIL PASS PASS PASS PASS
0222 @inlist with multi-level elements @inlist with @property at different levels of descendence creates single list. FAIL PASS PASS PASS PASS
0223 @inlist with non-list property Use of predicate with @inlist and without @inlist creates both list and non-list triples. FAIL PASS PASS PASS PASS
0224 @inlist hanging @rel Use of @rel and @inlist with decendent IRI elements creates list FAIL PASS PASS PASS PASS
0225 @inlist on different elements with same subject @inlist with same property and subject on different elements creates multiple lists FAIL PASS PASS PASS PASS
0226 confusion between multiple implicit collections (resource) Use of @inlist with implicit subject uses different list FAIL PASS PASS PASS PASS
0227 confusion between multiple implicit collections (about) Use of @inlist with implicit subject uses different list FAIL PASS PASS PASS PASS
0228 1.1 alternate for test 0040: @rev - @src/@resource test @src is a lower priority than @resource FAIL PASS PASS PASS PASS
0229 img[@src] test with omitted @about Tests if a @src (in img element) does not set the URIref object (with omitted @about) -- from 0042 FAIL PASS PASS PASS PASS
0230 @src does not set a new subject (@rel/@href) Tests to ensure that @src does not set a new subject (oposite of 0090 for 1.0). FAIL PASS PASS PASS PASS
0231 Set image license information Tests new behavior of @src in 1.1 PASS PASS PASS PASS PASS
0232 @typeof with @rel present, no @href, @resource, or @about (1.1 behavior of 0046); Tests @typeof with @rel present, no @href, @resource, or @about creates a BNode object FAIL PASS PASS PASS PASS
0233 @typeof with @rel and @resource present, no @about (1.1 behavior of 0047) Tests @typeof with @rel and @resource present, no @about adds type to object FAIL PASS PASS PASS PASS
0234 All defined HTML link relation values Tests to ensure that all defined linked relations expand FAIL PASS PASS PASS PASS
0235 rdfagraph='processor' does not generate standard triples Setting rdfagraph query parameter to 'processor' does not output standard triples PASS PASS PASS PASS PASS
0236 rdfagraph='processor' with a markup error generates rdfa:Error Setting rdfagraph query parameter to 'processor' generates an rdf:Error FAIL PASS PASS PASS PASS
0237 rdfagraph='processor' with invalid SafeCURIE generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an invalid prefix. FAIL PASS PASS PASS PASS
0238 rdfagraph='processor' with missing Term definition generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a missing Term definition. FAIL PASS PASS PASS PASS
0239 rdfagraph='processor' with undefined prefix generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an undefined prefix. FAIL PASS PASS PASS PASS
0246 hanging @rel creates multiple triples, @typeof permutation; RDFa 1.1 version Tests if hanging @rel creates multiple triples with @typeof permutation FAIL PASS PASS PASS PASS
0247 Multiple incomplete triples, RDFa 1.1version Tests multiple ways of handling incomplete triples; the first two triples should use the same bnode as subject ('merged'). The third should have a separate bNode. FAIL PASS PASS PASS PASS
0248 multiple ways of handling incomplete triples (with @rev); RDFa 1.1 version Tests multiple ways of handling incomplete triples, this time with @rev FAIL PASS PASS PASS PASS
0249 multiple ways of handling incomplete triples (with @rel and @rev); RDFa 1.1 version Tests multiple ways of handling incomplete triples, this time with both @rel and @rev FAIL PASS PASS PASS PASS
0250 Checking the right behaviour of @typeof with @about, in presence of @property Tests that @typeof is clearly bound to @about, and @property therefore creates a Literal object FAIL PASS PASS PASS PASS
0258 The underscore character is not allowed in xmlns Ensures that a prefix cannot start with an underscore character when specified using xmlns or prefix. FAIL PASS PASS PASS PASS
0259 XML+RDFa Initial Context All processors must load the RDFa Core Initial Context. FAIL PASS PASS PASS PASS
0260 XHTML+RDFa Initial Context XHTML+RDFa initial context. PASS PASS PASS PASS PASS
0261 White space preservation in XMLLiteral Whitespace must be maintained in an XMLLiteral, too PASS PASS PASS PASS PASS
0262 Predicate establishment with @property, with white spaces before and after the attribute value Tests @property to establish the predicate; literal object is in the content of the element. There are extra whitespaces before and after the property attribute value which should be ignored FAIL PASS PASS PASS PASS
0263 @property appearing on the html element yields the base as the subject @property appearing on the html element without @content or @datatype yields the base as the subject FAIL PASS PASS PASS PASS
0264 @property appearing on the head element gets the subject from , ie, parent @property appearing on the head element gets the subject from , ie, parent FAIL PASS PASS PASS PASS
0265 @property appearing on the head element gets the subject from , ie, parent @property appearing on the head element gets the subject from , ie, parent; in this case the parent subject is explicitly set via @about FAIL PASS PASS PASS PASS
0266 @property without @content or @datatype, typed object set by @href and @typeof @property without @content or @datatype, typed object set by @href and @typeof FAIL PASS PASS PASS PASS
0267 @property without @content or @datatype, typed object set by @resource and @typeof @property without @content or @datatype, typed object set by @resource and @typeof FAIL PASS PASS PASS PASS
0268 @property without @content or @datatype, typed object set by @src and @typeof @property without @content or @datatype, typed object set by @src and @typeof FAIL PASS PASS PASS PASS
0269 @property appearing on the html element yields the base as the subject, also with @content @property appearing on the html element without @content or @datatype yields the base as the subject, also with @content FAIL PASS PASS PASS PASS
0271 Use of @property in HEAD with explicit parent subject via @about @property appearing on the head element gets the subject from parent, also with @content and explicit @about at the top FAIL PASS PASS PASS PASS
0289 @href becomes subject when @property and @content are present When @property and @content are present but @about, @rel and @rev are not, @href is used as subject. FAIL PASS PASS PASS PASS
0290 @href becomes subject when @property and @datatype are present When @property and @datatype are present but @about, @rel and @rev are not, @href is used as subject and element content is used as an object literal. FAIL PASS PASS PASS PASS
0291 @href as subject overridden by @about When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject. PASS PASS PASS PASS PASS
0292 @about overriding @href as subject is used as parent resource When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject and is also applied to nested descriptions. PASS PASS PASS PASS PASS
0293 Testing the ':' character usage in a CURIE RDFa 1.1 CURIE allows the ':' to appear in the reference part of a CURIE. FAIL PASS PASS PASS PASS

1.2 XML

RDFa Core 1.1 [RDFA-CORE] defines core processing rules for independent of host language, and provides default processing rules for XML-based host languages.
Test clj-rdfa librdfa pyRdfa RDF::RDFa
0001 Predicate establishment with @property Tests @property to establish the predicate; literal object is in the content of the element. PASS PASS PASS PASS
0006 @rel and @rev Tests @rev and @rel together, with the object being specified by @href, ignoring content PASS PASS PASS PASS
0007 @rel, @rev, @property, @content Tests @rel, @rev, @property, and @content together to generate several RDF triples. PASS PASS PASS PASS
0008 empty string @about Tests empty @about. PASS PASS PASS PASS
0009 @rev Tests @rev. PASS PASS PASS PASS
0010 @rel, @rev, @href Tests @rel, @rev, and @href to generate two RDF triples. PASS PASS PASS PASS
0012 @xml:lang Tests @xml:lang PASS PASS PASS PASS
0013 @xml:lang inheritance Tests @xml:lang inheritance PASS PASS PASS PASS
0014 @datatype, xsd:integer Tests setting the @datatype to xsd:integer PASS PASS PASS PASS
0015 meta and link Tests meta and link with no parent @about PASS PASS PASS PASS
0017 Related blanknodes Tests creation of statements involving explicitly created blank nodes. PASS PASS PASS PASS
0018 @rel for predicate Tests @rel to establish predicate. PASS PASS PASS PASS
0019 @about for subject Tests @about to establish subject. PASS PASS PASS PASS
0020 Inheriting @about for subject Tests @about inheritance to establish subject. PASS PASS PASS PASS
0021 Subject inheritance with no @about Tests inheritance of subject when no @about can be found PASS PASS PASS PASS
0023 @id does not generate subjects Tests that @id does not generate subjects PASS PASS PASS PASS
0025 simple chaining test Tests simple chaining with cascade of @resource and @property PASS PASS PASS PASS
0026 @content Tests @content for literal object PASS PASS PASS PASS
0027 @content, ignore element content Tests @content for literal object, overriding element content. PASS PASS PASS PASS
0029 markup stripping with @datatype Tests markup stripping from a span element with @datatype=xsd:string PASS PASS PASS PASS
0030 omitted @about Tests omitted @about. PASS PASS PASS PASS
0031 simple @resource Tests if @resource sets URIref object correct. PASS PASS PASS PASS
0032 @resource overrides @href Tests if @resource overrides @href to set the URIref object. PASS PASS PASS PASS
0033 simple chaining test with bNode Tests simple chaining with cascade of bNode and @property PASS PASS PASS PASS
0034 simple img[@src] test Tests if a @src (in img element) correctly sets the URIref object PASS PASS PASS PASS
0035 @src/@href test Tests if @href overwrites @src PASS PASS PASS PASS
0036 @src/@resource test Tests if @resource overwrites @src PASS PASS PASS PASS
0037 @src/@href/@resource test Tests if @resource overwrites both @href and @src PASS PASS PASS PASS
0038 @rev - img[@src] test Tests if a @src (in img element) correctly sets the URIref subject (due to @rev) PASS PASS PASS PASS
0039 @rev - @src/@href test Tests if @href overwrites @src correctly to set the URIref subject (due to @rev) PASS PASS PASS PASS
0041 @rev - @src/@href/@resource test Tests if @resource overwrites both @href and @src correctly to set the URIref subject (due to @rev) PASS PASS PASS PASS
0048 @typeof with @about and @rel present, no @resource Tests @typeof with @about and @rel present, no @resource PASS PASS PASS PASS
0049 @typeof with @about, no @rel or @resource Tests @typeof with @about, no @rel or @resource PASS PASS PASS PASS
0050 @typeof without anything else Tests @typeof without anything else PASS PASS PASS PASS
0051 @typeof with a single @property Tests @typeof with a single @property PASS PASS PASS PASS
0052 @typeof with @resource and nothing else Tests to ensure that @typeof does not apply to @resource PASS PASS PASS PASS
0053 @typeof with @resource and nothing else, with a subelement Tests to make sure that @typeof does not apply to @resource, but @resource sets the subject for the next triple to be generated PASS PASS PASS PASS
0054 multiple @property Tests multiple @property separated by white spaces PASS PASS PASS PASS
0055 multiple @rel Tests multiple @rel separated by white spaces PASS PASS PASS PASS
0056 @typeof applies to @about on same element with hanging rel Tests if @typeof applies to @about on same element with hanging @rel PASS PASS PASS PASS
0057 hanging @rel creates multiple triples Tests if hanging @rel creates multiple triples PASS PASS PASS PASS
0059 multiple hanging @rels with multiple children Tests multiple hanging @rels with multiple children PASS PASS PASS PASS
0060 UTF-8 conformance Tests conformance with UTF-8 encoding PASS PASS PASS PASS
0063 @rel in head using reserved XHTML value and empty-prefix CURIE syntax Tests @rel in head using reserved XHTML value and empty-prefix CURIE syntax PASS PASS PASS PASS
0064 @about with safe CURIE Tests if @about generates a proper triple when a safe CURIE is used PASS PASS PASS PASS
0065 @rel with safe CURIE Tests if @rel properly connects triples generated when safe CURIEs are used PASS PASS PASS PASS
0067 @property in the head Test to make sure that @property in head uses the implied current document as the subject if no other subject is specified PASS PASS PASS PASS
0068 Relative URI in @about Tests to ensure that relative URI is resolved correctly when used in @about PASS PASS PASS PASS
0071 No explicit @about Tests to ensure that a triple is generated even if @typeof and @about is not specified anywhere in the document PASS PASS PASS PASS
0079 @resource and @href in completing incomplete triples Tests role of @resource and @href in completing incomplete triples (including their mutual priorities) PASS PASS PASS PASS
0080 @about overrides @resource in incomplete triples Tests if @about has a higher priority than @resource in handling incomplete triples PASS PASS PASS PASS
0083 multiple ways of handling incomplete triples (merged) Tests multiple ways of handling incomplete triples; the first two triples should use the same bNode as subject ('merged'); the third case should use @about PASS PASS PASS PASS
0084 multiple ways of handling incomplete triples, this time with both @rel and @rev Tests multiple ways of handling incomplete triples, this time with both @rel and @rev. There is an intermediate div that should be ignored by the process PASS PASS PASS PASS
0085 @resource and @href in completing incomplete triples Tests the role of @resource and @href in completing incomplete triples (including their mutual priorities), but with an intermediate layer (ie, bNode) added PASS PASS PASS PASS
0087 All reserved XHTML @rel values (with :xxx) Tests to ensure that all reserved XHTML words are supported in @rel (with :xxx) PASS PASS PASS PASS
0088 Interpretation of the CURIE "_:" Test the interpretation of the CURIE "_:" PASS PASS PASS PASS
0089 @src sets a new subject (@typeof) Tests to ensure that @src sets a new subject (focuses on @typeof). PASS PASS PASS PASS
0091 Non-reserved, un-prefixed CURIE in @property Tests to ensure that non-reserved, un-prefixed CURIEs, when used in @property, generate triples. PASS PASS PASS PASS
0093 Tests XMLLiteral content with explicit @datatype (user-data-typed literal) Tests the explicit specification of an RDF XMLLiteral with @datatype using a non-RDF namespace, yielding a user-data-typed literal PASS PASS PASS PASS
0099 Preservation of white space in literals Tests the preservation of white space in literals. PASS PASS PASS PASS
0104 rdf:value Tests rdf:value with blank nodes to give a value with a unit PASS PASS PASS PASS
0106 chaining with empty value in inner @rel Tests the behavior of triple generation in the case where the inner @rel is defined, but is blank, which halts chaining. PASS PASS PASS PASS
0107 no garbage collecting bnodes Checks to make sure that that while we shouldn't garbage collect bnodes no triples are generated. PASS PASS PASS PASS
0108 plain literal with datatype="" and xml:lang preservation Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "" and preserves the xml:lang value. The text, with control characters and whitespace preserved, reads "Greek white space ". PASS PASS PASS PASS
0112 plain literal with datatype="" Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "". PASS PASS PASS PASS
0113 element with @property and no child nodes generates empty plain literal Checks to make sure that an element with @property and no child nodes generates empty plain literal. PASS PASS PASS PASS
0115 XML Entities must be supported by RDFa parser Checks to make sure that XML Entities are treated properly by the RDFa parser. PASS PASS PASS PASS
0118 empty string "" is not equivalent to NULL - @about Checks to make sure that the empty string "" isn't considered as NULL in languages such as Javascript when generating triples. This test sets the subject in a chain using @href and then immediately changes the subject using @about and generates a triple. A buggy parser may use the @href subject (http://example.org/javascript.html) instead of the one defined by @about. PASS PASS PASS PASS
0119 "[prefix:]" CURIE format is valid Checks to make sure that an RDFa processor expands CURIEs having only a prefix and a colon if a prefix is properly defined using xmlns. PASS PASS PASS PASS
0120 "[:]" CURIE format is valid Checks to make sure that an RDFa processor expands CURIEs having only a colon to the default prefix "http://www.w3.org/1999/test-cases/vocab#". PASS PASS PASS PASS
0121 "[]" is a valid safe CURIE Checks to make sure RDFa processors resolve the empty CURIE correctly. Note that this is not valid HTML due to recursive PASS PASS PASS PASS
0122 resource="[]" does not set the object Checks to make sure that resource="[]" does not set the object since RDFa does not allow non-prefixed CURIEs. PASS PASS PASS PASS
0126 Multiple @typeof values Checks to ensure that multiple (white space separated) values in @typeof trigger multiple rdf:type triples. PASS PASS PASS PASS
0140 Blank nodes identifiers are not allowed as predicates The RDF data model does not allow blank node identifiers in predicates. This test ensures that RDFa processors do not emit invalid triples. PASS PASS PASS PASS
0147 xmlns prefix 'xmlzzz' (reserved) Ensures that RDFa processors allow the prefix 'xmlzzz', even though it is a reserved prefix in XML. PASS PASS PASS PASS
0174 Support single character prefix in CURIEs Checks to ensure that the RDFa processor correctly processes single character prefixes when processing CURIEs. PASS PASS PASS PASS
0175 IRI for @property is allowed Checks to make sure that a URI may be used as a @property value PASS PASS PASS PASS
0176 IRI for @rel and @rev is allowed Checks to make sure that a URI may be used as @rel and @rev values PASS PASS PASS PASS
0180 Test @prefix with empty mapping Checks to make sure @prefix with empty prefix does not create a mapping. PASS PASS PASS PASS
0181 Test default XHTML vocabulary Checks Tests a CURIE with default namespace uses XHTML Vocabulary namespace. PASS PASS PASS PASS
0196 Test process explicit XMLLiteral XMLLiteral must be explicitly specified, otherwise a normal untyped literal is created PASS PASS PASS PASS
0206 Usage of Initial Context Tests whether the default RDFa 1.1 context (which contains prefix definitions, among others, to the Semantic Web Standard vocabularies) is properly handled. PASS PASS PASS PASS
0207 Vevent using @typeof Tests Vevent using @typeof (inlc. dtstart, dtend, etc.) PASS PASS PASS PASS
0213 Datatype generation for a literal with XML content, version 1.1 In RDFa 1.1, even if a literal contains XML elements, and no explicit datatype is set, the result is plain literal PASS PASS PASS PASS
0214 Root element has implicit @about="" All documents have an implicit @about="" PASS PASS PASS PASS
0229 img[@src] test with omitted @about Tests if a @src (in img element) does not set the URIref object (with omitted @about) -- from 0042 PASS PASS PASS PASS
0235 rdfagraph='processor' does not generate standard triples Setting rdfagraph query parameter to 'processor' does not output standard triples PASS PASS PASS PASS
0236 rdfagraph='processor' with a markup error generates rdfa:Error Setting rdfagraph query parameter to 'processor' generates an rdf:Error PASS PASS PASS PASS
0237 rdfagraph='processor' with invalid SafeCURIE generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an invalid prefix. PASS PASS PASS PASS
0238 rdfagraph='processor' with missing Term definition generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a missing Term definition. PASS PASS PASS PASS
0239 rdfagraph='processor' with undefined prefix generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an undefined prefix. PASS PASS PASS PASS
0246 hanging @rel creates multiple triples, @typeof permutation; RDFa 1.1 version Tests if hanging @rel creates multiple triples with @typeof permutation PASS PASS PASS PASS
0247 Multiple incomplete triples, RDFa 1.1version Tests multiple ways of handling incomplete triples; the first two triples should use the same bnode as subject ('merged'). The third should have a separate bNode. PASS PASS PASS PASS
0248 multiple ways of handling incomplete triples (with @rev); RDFa 1.1 version Tests multiple ways of handling incomplete triples, this time with @rev PASS PASS PASS PASS
0249 multiple ways of handling incomplete triples (with @rel and @rev); RDFa 1.1 version Tests multiple ways of handling incomplete triples, this time with both @rel and @rev PASS PASS PASS PASS
0250 Checking the right behaviour of @typeof with @about, in presence of @property Tests that @typeof is clearly bound to @about, and @property therefore creates a Literal object PASS PASS PASS PASS
0258 The underscore character is not allowed in xmlns Ensures that a prefix cannot start with an underscore character when specified using xmlns or prefix. PASS PASS PASS PASS
0259 XML+RDFa Initial Context All processors must load the RDFa Core Initial Context. PASS PASS PASS PASS
0261 White space preservation in XMLLiteral Whitespace must be maintained in an XMLLiteral, too PASS PASS PASS PASS
0262 Predicate establishment with @property, with white spaces before and after the attribute value Tests @property to establish the predicate; literal object is in the content of the element. There are extra whitespaces before and after the property attribute value which should be ignored PASS PASS PASS PASS
0263 @property appearing on the html element yields the base as the subject @property appearing on the html element without @content or @datatype yields the base as the subject PASS PASS PASS PASS
0264 @property appearing on the head element gets the subject from , ie, parent @property appearing on the head element gets the subject from , ie, parent PASS PASS PASS PASS
0265 @property appearing on the head element gets the subject from , ie, parent @property appearing on the head element gets the subject from , ie, parent; in this case the parent subject is explicitly set via @about PASS PASS PASS PASS
0266 @property without @content or @datatype, typed object set by @href and @typeof @property without @content or @datatype, typed object set by @href and @typeof PASS PASS PASS PASS
0267 @property without @content or @datatype, typed object set by @resource and @typeof @property without @content or @datatype, typed object set by @resource and @typeof PASS PASS PASS PASS
0268 @property without @content or @datatype, typed object set by @src and @typeof @property without @content or @datatype, typed object set by @src and @typeof PASS PASS PASS PASS
0269 @property appearing on the html element yields the base as the subject, also with @content @property appearing on the html element without @content or @datatype yields the base as the subject, also with @content PASS PASS PASS PASS
0271 Use of @property in HEAD with explicit parent subject via @about @property appearing on the head element gets the subject from parent, also with @content and explicit @about at the top PASS PASS PASS PASS
0289 @href becomes subject when @property and @content are present When @property and @content are present but @about, @rel and @rev are not, @href is used as subject. PASS PASS PASS PASS
0290 @href becomes subject when @property and @datatype are present When @property and @datatype are present but @about, @rel and @rev are not, @href is used as subject and element content is used as an object literal. PASS PASS PASS PASS
0291 @href as subject overridden by @about When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject. PASS PASS PASS PASS
0292 @about overriding @href as subject is used as parent resource When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject and is also applied to nested descriptions. PASS PASS PASS PASS
0293 Testing the ':' character usage in a CURIE RDFa 1.1 CURIE allows the ':' to appear in the reference part of a CURIE. PASS PASS PASS PASS

2. RDFa 1.1 Vocabulary

RDFa Core 1.1 [RDFA-CORE] Vocabulary Expansion is an optional RDFa extension used to perform limited OWL and RDFS expansion of terms associated with a Vocabulary.

2.1 XHTML1

XHTML+RDFa 1.1 [XHTML-RDFA] extends RDFa Core 1.1 [RDFA-CORE] with host-language specific processing rules.
Test clj-rdfa pyRdfa RDF::RDFa
0240 vocab_expansion='true' expands sub-property A property having an rdfs:subPropertyOf relationship defined in an in-use vocabulary causes triples to be added to the referenced property. PASS PASS PASS
0241 vocab_expansion='true' expands equivalent-property A property having an owl:equivalentProperty relationship defined in an in-use vocabulary causes triples to be added to the referenced property. PASS PASS PASS
0242 vocab_expansion='true' expands referenced equivalent-property A property which is the target of another property having an owl:equivalentProperty relationship defined in an in-use vocabulary causes triples to be added to the defining property. PASS PASS PASS
0243 vocab_expansion='true' expands sub-class A property having an rdfs:subClassOf relationship defined in an in-use vocabulary causes triples to be added to the referenced class. PASS PASS PASS
0244 vocab_expansion='true' expands equivalent-class A class having an owl:equivalentClass relationship defined in an in-use vocabulary causes triples to be added to the referenced class. PASS PASS PASS
0245 vocab_expansion='true' expands referenced equivalent-class A class which is the target of another class having an owl:equivalentClass relationship defined in an in-use vocabulary causes triples to be added to the defining class. PASS PASS PASS

2.2 XML

RDFa Core 1.1 [RDFA-CORE] defines core processing rules for independent of host language, and provides default processing rules for XML-based host languages.
Test clj-rdfa pyRdfa RDF::RDFa
0240 vocab_expansion='true' expands sub-property A property having an rdfs:subPropertyOf relationship defined in an in-use vocabulary causes triples to be added to the referenced property. PASS PASS PASS
0241 vocab_expansion='true' expands equivalent-property A property having an owl:equivalentProperty relationship defined in an in-use vocabulary causes triples to be added to the referenced property. PASS PASS PASS
0242 vocab_expansion='true' expands referenced equivalent-property A property which is the target of another property having an owl:equivalentProperty relationship defined in an in-use vocabulary causes triples to be added to the defining property. PASS PASS PASS
0243 vocab_expansion='true' expands sub-class A property having an rdfs:subClassOf relationship defined in an in-use vocabulary causes triples to be added to the referenced class. PASS PASS PASS
0244 vocab_expansion='true' expands equivalent-class A class having an owl:equivalentClass relationship defined in an in-use vocabulary causes triples to be added to the referenced class. PASS PASS PASS
0245 vocab_expansion='true' expands referenced equivalent-class A class which is the target of another class having an owl:equivalentClass relationship defined in an in-use vocabulary causes triples to be added to the defining class. PASS PASS PASS

3. Other Host Languages

The following results are for host languages that are not explicitly specified, or for which standards work is not yet complete.

3.1 HTML5

The HTML5 [HTML5] RDFa Host Language is defined in [[HTML+RDFa]]. HTML+RDFa extends RDFa Core 1.1 [RDFA-CORE] with host-language specific processing rules.
Test clj-rdfa librdfa pyRdfa RDF::RDFa
0001 Predicate establishment with @property Tests @property to establish the predicate; literal object is in the content of the element. PASS PASS PASS PASS
0006 @rel and @rev Tests @rev and @rel together, with the object being specified by @href, ignoring content PASS PASS PASS PASS
0007 @rel, @rev, @property, @content Tests @rel, @rev, @property, and @content together to generate several RDF triples. PASS PASS PASS PASS
0008 empty string @about Tests empty @about. PASS PASS PASS PASS
0009 @rev Tests @rev. PASS PASS PASS PASS
0010 @rel, @rev, @href Tests @rel, @rev, and @href to generate two RDF triples. PASS PASS PASS PASS
0014 @datatype, xsd:integer Tests setting the @datatype to xsd:integer PASS PASS PASS PASS
0015 meta and link Tests meta and link with no parent @about PASS PASS PASS PASS
0017 Related blanknodes Tests creation of statements involving explicitly created blank nodes. PASS PASS PASS PASS
0018 @rel for predicate Tests @rel to establish predicate. PASS PASS PASS PASS
0019 @about for subject Tests @about to establish subject. PASS PASS PASS PASS
0020 Inheriting @about for subject Tests @about inheritance to establish subject. PASS PASS PASS PASS
0021 Subject inheritance with no @about Tests inheritance of subject when no @about can be found PASS PASS PASS PASS
0023 @id does not generate subjects Tests that @id does not generate subjects PASS PASS PASS PASS
0025 simple chaining test Tests simple chaining with cascade of @resource and @property PASS PASS PASS PASS
0026 @content Tests @content for literal object PASS PASS PASS PASS
0027 @content, ignore element content Tests @content for literal object, overriding element content. PASS PASS PASS PASS
0029 markup stripping with @datatype Tests markup stripping from a span element with @datatype=xsd:string PASS PASS PASS PASS
0030 omitted @about Tests omitted @about. PASS PASS PASS PASS
0031 simple @resource Tests if @resource sets URIref object correct. PASS PASS PASS PASS
0032 @resource overrides @href Tests if @resource overrides @href to set the URIref object. PASS PASS PASS PASS
0033 simple chaining test with bNode Tests simple chaining with cascade of bNode and @property PASS PASS PASS PASS
0034 simple img[@src] test Tests if a @src (in img element) correctly sets the URIref object PASS PASS PASS PASS
0035 @src/@href test Tests if @href overwrites @src PASS PASS PASS PASS
0036 @src/@resource test Tests if @resource overwrites @src PASS PASS PASS PASS
0037 @src/@href/@resource test Tests if @resource overwrites both @href and @src PASS PASS PASS PASS
0038 @rev - img[@src] test Tests if a @src (in img element) correctly sets the URIref subject (due to @rev) PASS PASS PASS PASS
0039 @rev - @src/@href test Tests if @href overwrites @src correctly to set the URIref subject (due to @rev) PASS PASS PASS PASS
0041 @rev - @src/@href/@resource test Tests if @resource overwrites both @href and @src correctly to set the URIref subject (due to @rev) PASS PASS PASS PASS
0048 @typeof with @about and @rel present, no @resource Tests @typeof with @about and @rel present, no @resource PASS PASS PASS PASS
0049 @typeof with @about, no @rel or @resource Tests @typeof with @about, no @rel or @resource PASS PASS PASS PASS
0050 @typeof without anything else Tests @typeof without anything else PASS PASS PASS PASS
0051 @typeof with a single @property Tests @typeof with a single @property PASS PASS PASS PASS
0052 @typeof with @resource and nothing else Tests to ensure that @typeof does not apply to @resource PASS PASS PASS PASS
0053 @typeof with @resource and nothing else, with a subelement Tests to make sure that @typeof does not apply to @resource, but @resource sets the subject for the next triple to be generated PASS PASS PASS PASS
0054 multiple @property Tests multiple @property separated by white spaces PASS PASS PASS PASS
0055 multiple @rel Tests multiple @rel separated by white spaces PASS PASS PASS PASS
0056 @typeof applies to @about on same element with hanging rel Tests if @typeof applies to @about on same element with hanging @rel PASS PASS PASS PASS
0057 hanging @rel creates multiple triples Tests if hanging @rel creates multiple triples PASS PASS PASS PASS
0059 multiple hanging @rels with multiple children Tests multiple hanging @rels with multiple children PASS PASS PASS PASS
0060 UTF-8 conformance Tests conformance with UTF-8 encoding PASS PASS PASS PASS
0063 @rel in head using reserved XHTML value and empty-prefix CURIE syntax Tests @rel in head using reserved XHTML value and empty-prefix CURIE syntax PASS PASS PASS PASS
0064 @about with safe CURIE Tests if @about generates a proper triple when a safe CURIE is used PASS PASS PASS PASS
0065 @rel with safe CURIE Tests if @rel properly connects triples generated when safe CURIEs are used PASS PASS PASS PASS
0066 @about with @typeof in the head Test to make sure that @about (with current document) is implied in the head, and the proper triples are generated using @typeof PASS PASS PASS PASS
0067 @property in the head Test to make sure that @property in head uses the implied current document as the subject if no other subject is specified PASS PASS PASS PASS
0068 Relative URI in @about Tests to ensure that relative URI is resolved correctly when used in @about PASS PASS PASS PASS
0069 Relative URI in @href Tests to ensure that relative URI is resolved correctly when used in @href PASS PASS PASS PASS
0070 Relative URI in @resource Tests to ensure that relative URI is resolved correctly when used in @resource PASS PASS PASS PASS
0071 No explicit @about Tests to ensure that a triple is generated even if @typeof and @about is not specified anywhere in the document PASS PASS PASS PASS
0072 Relative URI in @about (with XHTML base in head) Tests to ensure that relative URIs are resolved correctly when used in @about with XHTML base set in head PASS PASS PASS PASS
0073 Relative URI in @resource (with XHTML base in head) Tests to ensure that relative URIs are resolved correctly when used in @resource with XHTML base set in head PASS PASS PASS PASS
0074 Relative URI in @href (with XHTML base in head) Tests to ensure that relative URIs are resolved correctly when used in @href with XHTML base set in head PASS PASS PASS PASS
0075 Reserved word 'license' in @rel with no explizit @about Tests to ensure that the XHTML+RDFa reserved word 'license' when used in @rel (with no @about) generates the proper triple PASS PASS PASS PASS
0079 @resource and @href in completing incomplete triples Tests role of @resource and @href in completing incomplete triples (including their mutual priorities) PASS PASS PASS PASS
0080 @about overrides @resource in incomplete triples Tests if @about has a higher priority than @resource in handling incomplete triples PASS PASS PASS PASS
0083 multiple ways of handling incomplete triples (merged) Tests multiple ways of handling incomplete triples; the first two triples should use the same bNode as subject ('merged'); the third case should use @about PASS PASS PASS PASS
0084 multiple ways of handling incomplete triples, this time with both @rel and @rev Tests multiple ways of handling incomplete triples, this time with both @rel and @rev. There is an intermediate div that should be ignored by the process PASS PASS PASS PASS
0085 @resource and @href in completing incomplete triples Tests the role of @resource and @href in completing incomplete triples (including their mutual priorities), but with an intermediate layer (ie, bNode) added PASS PASS PASS PASS
0087 All reserved XHTML @rel values (with :xxx) Tests to ensure that all reserved XHTML words are supported in @rel (with :xxx) PASS PASS PASS PASS
0088 Interpretation of the CURIE "_:" Test the interpretation of the CURIE "_:" PASS PASS PASS PASS
0089 @src sets a new subject (@typeof) Tests to ensure that @src sets a new subject (focuses on @typeof). PASS PASS PASS PASS
0091 Non-reserved, un-prefixed CURIE in @property Tests to ensure that non-reserved, un-prefixed CURIEs, when used in @property, generate triples. PASS PASS PASS PASS
0093 Tests XMLLiteral content with explicit @datatype (user-data-typed literal) Tests the explicit specification of an RDF XMLLiteral with @datatype using a non-RDF namespace, yielding a user-data-typed literal PASS PASS PASS PASS
0099 Preservation of white space in literals Tests the preservation of white space in literals. PASS PASS PASS PASS
0104 rdf:value Tests rdf:value with blank nodes to give a value with a unit PASS PASS PASS PASS
0106 chaining with empty value in inner @rel Tests the behavior of triple generation in the case where the inner @rel is defined, but is blank, which halts chaining. PASS PASS PASS PASS
0107 no garbage collecting bnodes Checks to make sure that that while we shouldn't garbage collect bnodes no triples are generated. PASS PASS PASS PASS
0109 Tests to ensure @xml:base is ignored Tests to make sure that @xml:base is ignored in XHTML+RDFa 1.0. The input test document is invalid XHTML. PASS FAIL PASS PASS
0110 bNode generated even though no nested @about exists Tests to make sure that a bNode is generated even though no nested @about exists. PASS PASS PASS PASS
0111 two bNodes generated after three levels of nesting Tests to make sure that two bNodes are generated after three levels of nesting and that the last div does not generate a triple. PASS PASS PASS PASS
0112 plain literal with datatype="" Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "". PASS PASS PASS PASS
0114 Relative URI dot-segment removal Checks to make sure that a relative URI is resolved correctly according to RFC3986, section 5 (even when the relative URI is invalid, in this case). PASS PASS PASS PASS
0115 XML Entities must be supported by RDFa parser Checks to make sure that XML Entities are treated properly by the RDFa parser. PASS PASS PASS PASS
0117 Fragment identifiers stripped from BASE Checks to make sure that fragment identifiers are stripped from [base] when used to generate triples. PASS PASS PASS PASS
0118 empty string "" is not equivalent to NULL - @about Checks to make sure that the empty string "" isn't considered as NULL in languages such as Javascript when generating triples. This test sets the subject in a chain using @href and then immediately changes the subject using @about and generates a triple. A buggy parser may use the @href subject (http://example.org/javascript.html) instead of the one defined by @about. PASS PASS PASS PASS
0119 "[prefix:]" CURIE format is valid Checks to make sure that an RDFa processor expands CURIEs having only a prefix and a colon if a prefix is properly defined using xmlns. PASS PASS PASS PASS
0120 "[:]" CURIE format is valid Checks to make sure that an RDFa processor expands CURIEs having only a colon to the default prefix "http://www.w3.org/1999/test-cases/vocab#". PASS PASS PASS PASS
0122 resource="[]" does not set the object Checks to make sure that resource="[]" does not set the object since RDFa does not allow non-prefixed CURIEs. PASS PASS PASS PASS
0126 Multiple @typeof values Checks to ensure that multiple (white space separated) values in @typeof trigger multiple rdf:type triples. PASS PASS PASS PASS
0131 Whitespace alternatives in attributes Ensures that multiple whitespace alternatives in attributes are allowed. PASS PASS PASS PASS
0134 Uppercase reserved words Ensures that mixed-case reserved words generate triples. PASS FAIL PASS PASS
0140 Blank nodes identifiers are not allowed as predicates The RDF data model does not allow blank node identifiers in predicates. This test ensures that RDFa processors do not emit invalid triples. PASS PASS PASS PASS
0147 xmlns prefix 'xmlzzz' (reserved) Ensures that RDFa processors allow the prefix 'xmlzzz', even though it is a reserved prefix in XML. PASS PASS PASS PASS
0174 Support single character prefix in CURIEs Checks to ensure that the RDFa processor correctly processes single character prefixes when processing CURIEs. PASS PASS PASS PASS
0175 IRI for @property is allowed Checks to make sure that a URI may be used as a @property value PASS PASS PASS PASS
0176 IRI for @rel and @rev is allowed Checks to make sure that a URI may be used as @rel and @rev values PASS PASS PASS PASS
0177 Test @prefix Checks to make sure @prefix with a single entry creates a URI mapping PASS PASS PASS PASS
0178 Test @prefix with multiple mappings Checks to make sure @prefix with multiple entires creates multiple URI mappings PASS PASS PASS PASS
0179 Test @prefix vs @xmlns priority Checks to make sure @prefix has a higher priority than @xmlns PASS PASS PASS PASS
0180 Test @prefix with empty mapping Checks to make sure @prefix with empty prefix does not create a mapping. PASS PASS PASS PASS
0181 Test default XHTML vocabulary Checks Tests a CURIE with default namespace uses XHTML Vocabulary namespace. PASS PASS PASS PASS
0182 Test prefix locality Checks to be sure that prefixes are defined within the element hierarchy. PASS PASS PASS PASS
0183 Test @xmlns redefines @prefix A new @xmlns definition should override a previous @prefix definition at this element. PASS PASS PASS PASS
0186 @vocab after subject declaration Check that @vocab establishes a new default vocabulary when declared on the same element as a subject declaration via @about. PASS PASS PASS PASS
0187 @vocab redefinition Check that a more deeply nested @vocab attribute overloads a previous @vocab definition. PASS PASS PASS PASS
0188 @vocab only affects predicates Check that @vocab definitions on parent elements only affect predicate establishment. PASS PASS PASS PASS
0189 @vocab overrides default term Check that @vocab changes a default term from XHV. Lookup checks default vocabulary before local term mappings. PASS PASS PASS PASS
0190 Test term case insensitivity Check to ensure a mixed case term matches a case insensitive definition PASS FAIL PASS PASS
0196 Test process explicit XMLLiteral XMLLiteral must be explicitly specified, otherwise a normal untyped literal is created PASS PASS PASS PASS
0197 Test TERMorCURIEorAbsURI requires an absolute URI TERMorCURIEorAbsURI requires an absolute URI PASS PASS PASS PASS
0206 Usage of Initial Context Tests whether the default RDFa 1.1 context (which contains prefix definitions, among others, to the Semantic Web Standard vocabularies) is properly handled. PASS PASS PASS PASS
0207 Vevent using @typeof Tests Vevent using @typeof (inlc. dtstart, dtend, etc.) PASS PASS PASS PASS
0213 Datatype generation for a literal with XML content, version 1.1 In RDFa 1.1, even if a literal contains XML elements, and no explicit datatype is set, the result is plain literal PASS PASS PASS PASS
0214 Root element has implicit @about="" All documents have an implicit @about="" PASS PASS PASS PASS
0216 Proper character encoding detection in spite of large headers Character encoding should work even in view of a large set of characters as attributes in the header, ie, when content sniffing may not work to establish encoding. PASS PASS PASS PASS
0217 @vocab causes rdfa:usesVocabulary triple to be added When encountering @vocab, a processor generates a triple with the base URI, rdfa:usesVocabulary and the IRI of the added vocabulary. PASS PASS PASS PASS
0218 @inlist to create empty list @inlist on @rel with no incomplete triples creates an empty list. PASS PASS PASS PASS
0219 @inlist with literal @inlist with @property creates a list having a literal as a single element. PASS PASS PASS PASS
0220 @inlist with IRI @inlist with @rel and @href creates a list having an IRI as a single element. PASS PASS PASS PASS
0221 @inlist with hetrogenious membership @inlist with @rel and @property creates a list with both IRI and Literal elements. PASS PASS PASS PASS
0222 @inlist with multi-level elements @inlist with @property at different levels of descendence creates single list. PASS PASS PASS PASS
0223 @inlist with non-list property Use of predicate with @inlist and without @inlist creates both list and non-list triples. PASS PASS PASS PASS
0224 @inlist hanging @rel Use of @rel and @inlist with decendent IRI elements creates list PASS FAIL PASS PASS
0225 @inlist on different elements with same subject @inlist with same property and subject on different elements creates multiple lists PASS PASS PASS PASS
0226 confusion between multiple implicit collections (resource) Use of @inlist with implicit subject uses different list PASS PASS PASS PASS
0227 confusion between multiple implicit collections (about) Use of @inlist with implicit subject uses different list PASS PASS PASS PASS
0228 1.1 alternate for test 0040: @rev - @src/@resource test @src is a lower priority than @resource PASS PASS PASS PASS
0229 img[@src] test with omitted @about Tests if a @src (in img element) does not set the URIref object (with omitted @about) -- from 0042 PASS PASS PASS PASS
0230 @src does not set a new subject (@rel/@href) Tests to ensure that @src does not set a new subject (oposite of 0090 for 1.0). PASS PASS PASS PASS
0231 Set image license information Tests new behavior of @src in 1.1 PASS PASS PASS PASS
0232 @typeof with @rel present, no @href, @resource, or @about (1.1 behavior of 0046); Tests @typeof with @rel present, no @href, @resource, or @about creates a BNode object PASS PASS PASS PASS
0233 @typeof with @rel and @resource present, no @about (1.1 behavior of 0047) Tests @typeof with @rel and @resource present, no @about adds type to object PASS PASS PASS PASS
0234 All defined HTML link relation values Tests to ensure that all defined linked relations expand PASS PASS PASS PASS
0235 rdfagraph='processor' does not generate standard triples Setting rdfagraph query parameter to 'processor' does not output standard triples PASS PASS PASS PASS
0237 rdfagraph='processor' with invalid SafeCURIE generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an invalid prefix. PASS PASS PASS PASS
0238 rdfagraph='processor' with missing Term definition generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a missing Term definition. PASS PASS PASS PASS
0239 rdfagraph='processor' with undefined prefix generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an undefined prefix. PASS PASS PASS PASS
0246 hanging @rel creates multiple triples, @typeof permutation; RDFa 1.1 version Tests if hanging @rel creates multiple triples with @typeof permutation PASS PASS PASS PASS
0247 Multiple incomplete triples, RDFa 1.1version Tests multiple ways of handling incomplete triples; the first two triples should use the same bnode as subject ('merged'). The third should have a separate bNode. PASS PASS PASS PASS
0248 multiple ways of handling incomplete triples (with @rev); RDFa 1.1 version Tests multiple ways of handling incomplete triples, this time with @rev PASS PASS PASS PASS
0249 multiple ways of handling incomplete triples (with @rel and @rev); RDFa 1.1 version Tests multiple ways of handling incomplete triples, this time with both @rel and @rev PASS PASS PASS PASS
0250 Checking the right behaviour of @typeof with @about, in presence of @property Tests that @typeof is clearly bound to @about, and @property therefore creates a Literal object PASS PASS PASS PASS
0251 lang Tests lang PASS PASS PASS PASS
0252 lang inheritance Tests lang inheritance PASS PASS PASS PASS
0253 plain literal with datatype="" and lang preservation Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "" and preserves the xml:lang value. The text, with control characters and whitespace preserved, reads "Greek white space ". PASS PASS PASS PASS
0254 @datatype="" generates plain literal in presence of child nodes Checks to ensure that when @datatype="" is used on an element that contains child nodes, that the literal that is generated is a plain literal. PASS PASS PASS PASS
0255 lang="" clears language setting Checks to ensure that when lang="" is used that any parent element language setting is cleared and a language-less literal is generated. PASS PASS PASS PASS
0256 lang and xml:lang on the same element Tests @xml:lang and @lang on the same element with different values; @xml:lang should prevail. PASS FAIL PASS PASS
0257 element with @property and no child nodes generates empty plain literal (HTML5 version of 0113) Checks to make sure that an element with @property and no child nodes generates empty plain literal. PASS PASS PASS PASS
0258 The underscore character is not allowed in xmlns Ensures that a prefix cannot start with an underscore character when specified using xmlns or prefix. PASS PASS PASS PASS
0259 XML+RDFa Initial Context All processors must load the RDFa Core Initial Context. PASS PASS PASS PASS
0261 White space preservation in XMLLiteral Whitespace must be maintained in an XMLLiteral, too PASS PASS PASS PASS
0262 Predicate establishment with @property, with white spaces before and after the attribute value Tests @property to establish the predicate; literal object is in the content of the element. There are extra whitespaces before and after the property attribute value which should be ignored PASS PASS PASS PASS
0263 @property appearing on the html element yields the base as the subject @property appearing on the html element without @content or @datatype yields the base as the subject PASS PASS PASS PASS
0264 @property appearing on the head element gets the subject from , ie, parent @property appearing on the head element gets the subject from , ie, parent PASS PASS PASS PASS
0265 @property appearing on the head element gets the subject from , ie, parent @property appearing on the head element gets the subject from , ie, parent; in this case the parent subject is explicitly set via @about PASS PASS PASS PASS
0266 @property without @content or @datatype, typed object set by @href and @typeof @property without @content or @datatype, typed object set by @href and @typeof PASS PASS PASS PASS
0267 @property without @content or @datatype, typed object set by @resource and @typeof @property without @content or @datatype, typed object set by @resource and @typeof PASS PASS PASS PASS
0268 @property without @content or @datatype, typed object set by @src and @typeof @property without @content or @datatype, typed object set by @src and @typeof PASS PASS PASS PASS
0269 @property appearing on the html element yields the base as the subject, also with @content @property appearing on the html element without @content or @datatype yields the base as the subject, also with @content PASS PASS PASS PASS
0271 Use of @property in HEAD with explicit parent subject via @about @property appearing on the head element gets the subject from parent, also with @content and explicit @about at the top PASS PASS PASS PASS
0272 time element with @datetime an xsd:date The @datetime attribute is used when generating output with valid xsd:date. PASS FAIL PASS PASS
0273 time element with @datetime an xsd:time The @datetime attribute is used when generating output with valid xsd:time. PASS FAIL PASS PASS
0274 time element with @datetime an xsd:dateTime The @datetime attribute is used when generating output with valid xsd:dateTime. PASS FAIL PASS PASS
0275 time element with value an xsd:date The time element value is used when generating output with valid xsd:date. PASS FAIL PASS PASS
0276 time element with value an xsd:time The time element value is used when generating output with valid xsd:time. PASS FAIL PASS PASS
0277 time element with value an xsd:dateTime The time element value is used when generating output with valid xsd:dateTime. PASS FAIL PASS PASS
0278 @datetime overrides @content The @datetime attribute must be utilized when generating output, overriding any value expressed using the @content attribute. PASS FAIL PASS PASS
0279 @datetype used with @datetime overrides default datatype If @datatype is specified, it must override the automatic datatype. PASS FAIL PASS PASS
0280 time element with @datetime an xsd:duration The @datetime attribute is used when generating output with valid xsd:duration. PASS FAIL PASS PASS
0281 time element with @datetime an xsd:gYear The @datetime attribute is used when generating output with valid xsd:gYear. PASS FAIL PASS PASS
0282 time element with @datetime an xsd:gYearMonth The @datetime attribute is used when generating output with valid xsd:gYearMonth. PASS FAIL PASS PASS
0283 time element with @datetime an invalid datatype generates plain literal If the lexical scope of @datetime does not exactly match a known datatype a plain literal is generated. PASS PASS PASS PASS
0284 @data is an IRI attribute The @data attribute generates an IRI. PASS PASS PASS PASS
0285 time element with @datetime an invalid datatype and in scope @lang generates plain literal with language If no @datatype is specified and the value does not match a xsd:dateTime, xsd:date, or xsd:time pattern, a plain literal must be generated with the associated language of the node, if available. PASS FAIL PASS PASS
0286 @value attribute overrides @content the HTML5 @value attribute must be utilized when generating output. If @value is detected, it must override and be processed according to the rules for @content. PASS FAIL PASS PASS
0287 time element with @datetime an xsd:dateTime with TZ offset The @datetime attribute is used when generating output with valid xsd:dateTime and a Time Zone offset. PASS FAIL PASS PASS
0288 object element with @data parses as an IRI @data is a resource attribute. PASS FAIL PASS PASS
0289 @href becomes subject when @property and @content are present When @property and @content are present but @about, @rel and @rev are not, @href is used as subject. PASS PASS PASS PASS
0290 @href becomes subject when @property and @datatype are present When @property and @datatype are present but @about, @rel and @rev are not, @href is used as subject and element content is used as an object literal. PASS PASS PASS PASS
0291 @href as subject overridden by @about When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject. PASS PASS PASS PASS
0292 @about overriding @href as subject is used as parent resource When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject and is also applied to nested descriptions. PASS PASS PASS PASS
0293 Testing the ':' character usage in a CURIE RDFa 1.1 CURIE allows the ':' to appear in the reference part of a CURIE. PASS PASS PASS PASS

3.2 SVG

SVG [SVG12] supports RDFa by virtue of being an XML-based language, so the XML+RDFa rules defined in RDFa Core 1.1 [RDFA-CORE] apply to processing RDFa in SVG.
Test clj-rdfa librdfa pyRdfa RDF::RDFa
0201 Expressing an attribute using @property Tests @property to establish the predicate; literal object is in the content of the element. PASS PASS PASS PASS
0202 Tests to ensure @xml:base used in SVG Tests to make sure that @xml:base is used in SVG+RDFa. PASS FAIL PASS PASS
0203 Tests to ensure @xml:base used in non-root elements in SVG Tests to make sure that @xml:base is used in non-root elements in SVG+RDFa. PASS FAIL PASS PASS
0214 Root element has implicit @about="" All documents have an implicit @about="" PASS PASS PASS PASS
0218 @inlist to create empty list @inlist on @rel with no incomplete triples creates an empty list. PASS PASS PASS PASS
0219 @inlist with literal @inlist with @property creates a list having a literal as a single element. PASS PASS PASS PASS
0220 @inlist with IRI @inlist with @rel and @href creates a list having an IRI as a single element. PASS PASS PASS PASS
0221 @inlist with hetrogenious membership @inlist with @rel and @property creates a list with both IRI and Literal elements. PASS PASS PASS PASS
0222 @inlist with multi-level elements @inlist with @property at different levels of descendence creates single list. PASS PASS PASS PASS
0223 @inlist with non-list property Use of predicate with @inlist and without @inlist creates both list and non-list triples. PASS PASS PASS PASS
0224 @inlist hanging @rel Use of @rel and @inlist with decendent IRI elements creates list PASS FAIL PASS PASS
0225 @inlist on different elements with same subject @inlist with same property and subject on different elements creates multiple lists PASS FAIL PASS PASS
0226 confusion between multiple implicit collections (resource) Use of @inlist with implicit subject uses different list PASS PASS PASS PASS
0227 confusion between multiple implicit collections (about) Use of @inlist with implicit subject uses different list PASS PASS PASS PASS
0234 All defined HTML link relation values Tests to ensure that all defined linked relations expand PASS PASS PASS PASS
0235 rdfagraph='processor' does not generate standard triples Setting rdfagraph query parameter to 'processor' does not output standard triples PASS PASS PASS PASS
0236 rdfagraph='processor' with a markup error generates rdfa:Error Setting rdfagraph query parameter to 'processor' generates an rdf:Error PASS PASS PASS PASS
0237 rdfagraph='processor' with invalid SafeCURIE generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an invalid prefix. PASS PASS PASS PASS
0238 rdfagraph='processor' with missing Term definition generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a missing Term definition. PASS PASS PASS PASS
0239 rdfagraph='processor' with undefined prefix generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an undefined prefix. PASS PASS PASS PASS
0259 XML+RDFa Initial Context All processors must load the RDFa Core Initial Context. PASS PASS PASS PASS
0289 @href becomes subject when @property and @content are present When @property and @content are present but @about, @rel and @rev are not, @href is used as subject. PASS PASS PASS PASS
0290 @href becomes subject when @property and @datatype are present When @property and @datatype are present but @about, @rel and @rev are not, @href is used as subject and element content is used as an object literal. PASS PASS PASS PASS
0291 @href as subject overridden by @about When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject. PASS PASS PASS PASS
0292 @about overriding @href as subject is used as parent resource When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject and is also applied to nested descriptions. PASS PASS PASS PASS
0293 Testing the ':' character usage in a CURIE RDFa 1.1 CURIE allows the ':' to appear in the reference part of a CURIE. PASS PASS PASS PASS

3.3 XHTML5

The HTML5 [HTML5] RDFa Host Language is defined in [[HTML+RDFa]]. HTML+RDFa extends RDFa Core 1.1 [RDFA-CORE] with host-language specific processing rules.
Test clj-rdfa librdfa pyRdfa RDF::RDFa
0001 Predicate establishment with @property Tests @property to establish the predicate; literal object is in the content of the element. PASS PASS PASS PASS
0006 @rel and @rev Tests @rev and @rel together, with the object being specified by @href, ignoring content PASS PASS PASS PASS
0007 @rel, @rev, @property, @content Tests @rel, @rev, @property, and @content together to generate several RDF triples. PASS PASS PASS PASS
0008 empty string @about Tests empty @about. PASS PASS PASS PASS
0009 @rev Tests @rev. PASS PASS PASS PASS
0010 @rel, @rev, @href Tests @rel, @rev, and @href to generate two RDF triples. PASS PASS PASS PASS
0014 @datatype, xsd:integer Tests setting the @datatype to xsd:integer PASS PASS PASS PASS
0015 meta and link Tests meta and link with no parent @about PASS PASS PASS PASS
0017 Related blanknodes Tests creation of statements involving explicitly created blank nodes. PASS PASS PASS PASS
0018 @rel for predicate Tests @rel to establish predicate. PASS PASS PASS PASS
0019 @about for subject Tests @about to establish subject. PASS PASS PASS PASS
0020 Inheriting @about for subject Tests @about inheritance to establish subject. PASS PASS PASS PASS
0021 Subject inheritance with no @about Tests inheritance of subject when no @about can be found PASS PASS PASS PASS
0023 @id does not generate subjects Tests that @id does not generate subjects PASS PASS PASS PASS
0025 simple chaining test Tests simple chaining with cascade of @resource and @property PASS PASS PASS PASS
0026 @content Tests @content for literal object PASS PASS PASS PASS
0027 @content, ignore element content Tests @content for literal object, overriding element content. PASS PASS PASS PASS
0029 markup stripping with @datatype Tests markup stripping from a span element with @datatype=xsd:string PASS PASS PASS PASS
0030 omitted @about Tests omitted @about. PASS PASS PASS PASS
0031 simple @resource Tests if @resource sets URIref object correct. PASS PASS PASS PASS
0032 @resource overrides @href Tests if @resource overrides @href to set the URIref object. PASS PASS PASS PASS
0033 simple chaining test with bNode Tests simple chaining with cascade of bNode and @property PASS PASS PASS PASS
0034 simple img[@src] test Tests if a @src (in img element) correctly sets the URIref object PASS PASS PASS PASS
0035 @src/@href test Tests if @href overwrites @src PASS PASS PASS PASS
0036 @src/@resource test Tests if @resource overwrites @src PASS PASS PASS PASS
0037 @src/@href/@resource test Tests if @resource overwrites both @href and @src PASS PASS PASS PASS
0038 @rev - img[@src] test Tests if a @src (in img element) correctly sets the URIref subject (due to @rev) PASS PASS PASS PASS
0039 @rev - @src/@href test Tests if @href overwrites @src correctly to set the URIref subject (due to @rev) PASS PASS PASS PASS
0041 @rev - @src/@href/@resource test Tests if @resource overwrites both @href and @src correctly to set the URIref subject (due to @rev) PASS PASS PASS PASS
0048 @typeof with @about and @rel present, no @resource Tests @typeof with @about and @rel present, no @resource PASS PASS PASS PASS
0049 @typeof with @about, no @rel or @resource Tests @typeof with @about, no @rel or @resource PASS PASS PASS PASS
0050 @typeof without anything else Tests @typeof without anything else PASS PASS PASS PASS
0051 @typeof with a single @property Tests @typeof with a single @property PASS PASS PASS PASS
0052 @typeof with @resource and nothing else Tests to ensure that @typeof does not apply to @resource PASS PASS PASS PASS
0053 @typeof with @resource and nothing else, with a subelement Tests to make sure that @typeof does not apply to @resource, but @resource sets the subject for the next triple to be generated PASS PASS PASS PASS
0054 multiple @property Tests multiple @property separated by white spaces PASS PASS PASS PASS
0055 multiple @rel Tests multiple @rel separated by white spaces PASS PASS PASS PASS
0056 @typeof applies to @about on same element with hanging rel Tests if @typeof applies to @about on same element with hanging @rel PASS PASS PASS PASS
0057 hanging @rel creates multiple triples Tests if hanging @rel creates multiple triples PASS PASS PASS PASS
0059 multiple hanging @rels with multiple children Tests multiple hanging @rels with multiple children PASS PASS PASS PASS
0060 UTF-8 conformance Tests conformance with UTF-8 encoding PASS PASS PASS PASS
0063 @rel in head using reserved XHTML value and empty-prefix CURIE syntax Tests @rel in head using reserved XHTML value and empty-prefix CURIE syntax PASS PASS PASS PASS
0064 @about with safe CURIE Tests if @about generates a proper triple when a safe CURIE is used PASS PASS PASS PASS
0065 @rel with safe CURIE Tests if @rel properly connects triples generated when safe CURIEs are used PASS PASS PASS PASS
0066 @about with @typeof in the head Test to make sure that @about (with current document) is implied in the head, and the proper triples are generated using @typeof PASS PASS PASS PASS
0067 @property in the head Test to make sure that @property in head uses the implied current document as the subject if no other subject is specified PASS PASS PASS PASS
0068 Relative URI in @about Tests to ensure that relative URI is resolved correctly when used in @about PASS PASS PASS PASS
0069 Relative URI in @href Tests to ensure that relative URI is resolved correctly when used in @href PASS PASS PASS PASS
0070 Relative URI in @resource Tests to ensure that relative URI is resolved correctly when used in @resource PASS PASS PASS PASS
0071 No explicit @about Tests to ensure that a triple is generated even if @typeof and @about is not specified anywhere in the document PASS PASS PASS PASS
0072 Relative URI in @about (with XHTML base in head) Tests to ensure that relative URIs are resolved correctly when used in @about with XHTML base set in head PASS PASS PASS PASS
0073 Relative URI in @resource (with XHTML base in head) Tests to ensure that relative URIs are resolved correctly when used in @resource with XHTML base set in head PASS PASS PASS PASS
0074 Relative URI in @href (with XHTML base in head) Tests to ensure that relative URIs are resolved correctly when used in @href with XHTML base set in head PASS PASS PASS PASS
0075 Reserved word 'license' in @rel with no explizit @about Tests to ensure that the XHTML+RDFa reserved word 'license' when used in @rel (with no @about) generates the proper triple PASS PASS PASS PASS
0079 @resource and @href in completing incomplete triples Tests role of @resource and @href in completing incomplete triples (including their mutual priorities) PASS PASS PASS PASS
0080 @about overrides @resource in incomplete triples Tests if @about has a higher priority than @resource in handling incomplete triples PASS PASS PASS PASS
0083 multiple ways of handling incomplete triples (merged) Tests multiple ways of handling incomplete triples; the first two triples should use the same bNode as subject ('merged'); the third case should use @about PASS PASS PASS PASS
0084 multiple ways of handling incomplete triples, this time with both @rel and @rev Tests multiple ways of handling incomplete triples, this time with both @rel and @rev. There is an intermediate div that should be ignored by the process PASS FAIL PASS PASS
0085 @resource and @href in completing incomplete triples Tests the role of @resource and @href in completing incomplete triples (including their mutual priorities), but with an intermediate layer (ie, bNode) added PASS PASS PASS PASS
0087 All reserved XHTML @rel values (with :xxx) Tests to ensure that all reserved XHTML words are supported in @rel (with :xxx) PASS PASS PASS PASS
0088 Interpretation of the CURIE "_:" Test the interpretation of the CURIE "_:" PASS PASS PASS PASS
0089 @src sets a new subject (@typeof) Tests to ensure that @src sets a new subject (focuses on @typeof). PASS PASS PASS PASS
0091 Non-reserved, un-prefixed CURIE in @property Tests to ensure that non-reserved, un-prefixed CURIEs, when used in @property, generate triples. PASS PASS PASS PASS
0093 Tests XMLLiteral content with explicit @datatype (user-data-typed literal) Tests the explicit specification of an RDF XMLLiteral with @datatype using a non-RDF namespace, yielding a user-data-typed literal PASS PASS PASS PASS
0099 Preservation of white space in literals Tests the preservation of white space in literals. PASS PASS PASS PASS
0104 rdf:value Tests rdf:value with blank nodes to give a value with a unit PASS PASS PASS PASS
0106 chaining with empty value in inner @rel Tests the behavior of triple generation in the case where the inner @rel is defined, but is blank, which halts chaining. PASS PASS PASS PASS
0107 no garbage collecting bnodes Checks to make sure that that while we shouldn't garbage collect bnodes no triples are generated. PASS PASS PASS PASS
0109 Tests to ensure @xml:base is ignored Tests to make sure that @xml:base is ignored in XHTML+RDFa 1.0. The input test document is invalid XHTML. PASS FAIL PASS PASS
0110 bNode generated even though no nested @about exists Tests to make sure that a bNode is generated even though no nested @about exists. PASS PASS PASS PASS
0111 two bNodes generated after three levels of nesting Tests to make sure that two bNodes are generated after three levels of nesting and that the last div does not generate a triple. PASS PASS PASS PASS
0112 plain literal with datatype="" Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "". PASS PASS PASS PASS
0114 Relative URI dot-segment removal Checks to make sure that a relative URI is resolved correctly according to RFC3986, section 5 (even when the relative URI is invalid, in this case). PASS PASS PASS PASS
0115 XML Entities must be supported by RDFa parser Checks to make sure that XML Entities are treated properly by the RDFa parser. PASS PASS PASS PASS
0117 Fragment identifiers stripped from BASE Checks to make sure that fragment identifiers are stripped from [base] when used to generate triples. PASS PASS PASS PASS
0118 empty string "" is not equivalent to NULL - @about Checks to make sure that the empty string "" isn't considered as NULL in languages such as Javascript when generating triples. This test sets the subject in a chain using @href and then immediately changes the subject using @about and generates a triple. A buggy parser may use the @href subject (http://example.org/javascript.html) instead of the one defined by @about. PASS PASS PASS PASS
0119 "[prefix:]" CURIE format is valid Checks to make sure that an RDFa processor expands CURIEs having only a prefix and a colon if a prefix is properly defined using xmlns. PASS PASS PASS PASS
0120 "[:]" CURIE format is valid Checks to make sure that an RDFa processor expands CURIEs having only a colon to the default prefix "http://www.w3.org/1999/test-cases/vocab#". PASS PASS PASS PASS
0121 "[]" is a valid safe CURIE Checks to make sure RDFa processors resolve the empty CURIE correctly. Note that this is not valid HTML due to recursive PASS PASS PASS PASS
0122 resource="[]" does not set the object Checks to make sure that resource="[]" does not set the object since RDFa does not allow non-prefixed CURIEs. PASS PASS PASS PASS
0126 Multiple @typeof values Checks to ensure that multiple (white space separated) values in @typeof trigger multiple rdf:type triples. PASS PASS PASS PASS
0131 Whitespace alternatives in attributes Ensures that multiple whitespace alternatives in attributes are allowed. PASS PASS PASS PASS
0134 Uppercase reserved words Ensures that mixed-case reserved words generate triples. PASS FAIL PASS PASS
0140 Blank nodes identifiers are not allowed as predicates The RDF data model does not allow blank node identifiers in predicates. This test ensures that RDFa processors do not emit invalid triples. PASS PASS PASS PASS
0147 xmlns prefix 'xmlzzz' (reserved) Ensures that RDFa processors allow the prefix 'xmlzzz', even though it is a reserved prefix in XML. PASS PASS PASS PASS
0174 Support single character prefix in CURIEs Checks to ensure that the RDFa processor correctly processes single character prefixes when processing CURIEs. PASS PASS PASS PASS
0175 IRI for @property is allowed Checks to make sure that a URI may be used as a @property value PASS PASS PASS PASS
0176 IRI for @rel and @rev is allowed Checks to make sure that a URI may be used as @rel and @rev values PASS PASS PASS PASS
0177 Test @prefix Checks to make sure @prefix with a single entry creates a URI mapping PASS PASS PASS PASS
0178 Test @prefix with multiple mappings Checks to make sure @prefix with multiple entires creates multiple URI mappings PASS PASS PASS PASS
0179 Test @prefix vs @xmlns priority Checks to make sure @prefix has a higher priority than @xmlns PASS PASS PASS PASS
0180 Test @prefix with empty mapping Checks to make sure @prefix with empty prefix does not create a mapping. PASS PASS PASS PASS
0181 Test default XHTML vocabulary Checks Tests a CURIE with default namespace uses XHTML Vocabulary namespace. PASS PASS PASS PASS
0182 Test prefix locality Checks to be sure that prefixes are defined within the element hierarchy. PASS PASS PASS PASS
0183 Test @xmlns redefines @prefix A new @xmlns definition should override a previous @prefix definition at this element. PASS PASS PASS PASS
0186 @vocab after subject declaration Check that @vocab establishes a new default vocabulary when declared on the same element as a subject declaration via @about. PASS PASS PASS PASS
0187 @vocab redefinition Check that a more deeply nested @vocab attribute overloads a previous @vocab definition. PASS PASS PASS PASS
0188 @vocab only affects predicates Check that @vocab definitions on parent elements only affect predicate establishment. PASS PASS PASS PASS
0189 @vocab overrides default term Check that @vocab changes a default term from XHV. Lookup checks default vocabulary before local term mappings. PASS PASS PASS PASS
0190 Test term case insensitivity Check to ensure a mixed case term matches a case insensitive definition PASS FAIL PASS PASS
0196 Test process explicit XMLLiteral XMLLiteral must be explicitly specified, otherwise a normal untyped literal is created PASS PASS PASS PASS
0197 Test TERMorCURIEorAbsURI requires an absolute URI TERMorCURIEorAbsURI requires an absolute URI PASS PASS PASS PASS
0198 datatype XMLLiteral with other embedded RDFa Checks to ensure that when datatype is the default the parser generates triples for embedded content. PASS PASS PASS PASS
0206 Usage of Initial Context Tests whether the default RDFa 1.1 context (which contains prefix definitions, among others, to the Semantic Web Standard vocabularies) is properly handled. PASS PASS PASS PASS
0207 Vevent using @typeof Tests Vevent using @typeof (inlc. dtstart, dtend, etc.) PASS PASS PASS PASS
0213 Datatype generation for a literal with XML content, version 1.1 In RDFa 1.1, even if a literal contains XML elements, and no explicit datatype is set, the result is plain literal PASS PASS PASS PASS
0214 Root element has implicit @about="" All documents have an implicit @about="" PASS PASS PASS PASS
0216 Proper character encoding detection in spite of large headers Character encoding should work even in view of a large set of characters as attributes in the header, ie, when content sniffing may not work to establish encoding. PASS PASS PASS PASS
0217 @vocab causes rdfa:usesVocabulary triple to be added When encountering @vocab, a processor generates a triple with the base URI, rdfa:usesVocabulary and the IRI of the added vocabulary. PASS PASS PASS PASS
0218 @inlist to create empty list @inlist on @rel with no incomplete triples creates an empty list. PASS PASS PASS PASS
0219 @inlist with literal @inlist with @property creates a list having a literal as a single element. PASS PASS PASS PASS
0220 @inlist with IRI @inlist with @rel and @href creates a list having an IRI as a single element. PASS PASS PASS PASS
0221 @inlist with hetrogenious membership @inlist with @rel and @property creates a list with both IRI and Literal elements. PASS PASS PASS PASS
0222 @inlist with multi-level elements @inlist with @property at different levels of descendence creates single list. PASS PASS PASS PASS
0223 @inlist with non-list property Use of predicate with @inlist and without @inlist creates both list and non-list triples. PASS PASS PASS PASS
0224 @inlist hanging @rel Use of @rel and @inlist with decendent IRI elements creates list PASS FAIL PASS PASS
0225 @inlist on different elements with same subject @inlist with same property and subject on different elements creates multiple lists PASS PASS PASS PASS
0226 confusion between multiple implicit collections (resource) Use of @inlist with implicit subject uses different list PASS PASS PASS PASS
0227 confusion between multiple implicit collections (about) Use of @inlist with implicit subject uses different list PASS PASS PASS PASS
0228 1.1 alternate for test 0040: @rev - @src/@resource test @src is a lower priority than @resource PASS PASS PASS PASS
0229 img[@src] test with omitted @about Tests if a @src (in img element) does not set the URIref object (with omitted @about) -- from 0042 PASS PASS PASS PASS
0230 @src does not set a new subject (@rel/@href) Tests to ensure that @src does not set a new subject (oposite of 0090 for 1.0). PASS PASS PASS PASS
0231 Set image license information Tests new behavior of @src in 1.1 PASS PASS PASS PASS
0232 @typeof with @rel present, no @href, @resource, or @about (1.1 behavior of 0046); Tests @typeof with @rel present, no @href, @resource, or @about creates a BNode object PASS PASS PASS PASS
0233 @typeof with @rel and @resource present, no @about (1.1 behavior of 0047) Tests @typeof with @rel and @resource present, no @about adds type to object PASS PASS PASS PASS
0234 All defined HTML link relation values Tests to ensure that all defined linked relations expand PASS PASS PASS PASS
0235 rdfagraph='processor' does not generate standard triples Setting rdfagraph query parameter to 'processor' does not output standard triples PASS PASS PASS PASS
0237 rdfagraph='processor' with invalid SafeCURIE generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an invalid prefix. PASS PASS PASS PASS
0238 rdfagraph='processor' with missing Term definition generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a missing Term definition. PASS PASS PASS PASS
0239 rdfagraph='processor' with undefined prefix generates rdfa:Warning Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an undefined prefix. PASS PASS PASS PASS
0246 hanging @rel creates multiple triples, @typeof permutation; RDFa 1.1 version Tests if hanging @rel creates multiple triples with @typeof permutation PASS PASS PASS PASS
0247 Multiple incomplete triples, RDFa 1.1version Tests multiple ways of handling incomplete triples; the first two triples should use the same bnode as subject ('merged'). The third should have a separate bNode. PASS PASS PASS PASS
0248 multiple ways of handling incomplete triples (with @rev); RDFa 1.1 version Tests multiple ways of handling incomplete triples, this time with @rev PASS PASS PASS PASS
0249 multiple ways of handling incomplete triples (with @rel and @rev); RDFa 1.1 version Tests multiple ways of handling incomplete triples, this time with both @rel and @rev PASS PASS PASS PASS
0250 Checking the right behaviour of @typeof with @about, in presence of @property Tests that @typeof is clearly bound to @about, and @property therefore creates a Literal object PASS PASS PASS PASS
0251 lang Tests lang PASS PASS PASS PASS
0252 lang inheritance Tests lang inheritance PASS PASS PASS PASS
0253 plain literal with datatype="" and lang preservation Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "" and preserves the xml:lang value. The text, with control characters and whitespace preserved, reads "Greek white space ". PASS PASS PASS PASS
0254 @datatype="" generates plain literal in presence of child nodes Checks to ensure that when @datatype="" is used on an element that contains child nodes, that the literal that is generated is a plain literal. PASS PASS PASS PASS
0255 lang="" clears language setting Checks to ensure that when lang="" is used that any parent element language setting is cleared and a language-less literal is generated. PASS PASS PASS PASS
0256 lang and xml:lang on the same element Tests @xml:lang and @lang on the same element with different values; @xml:lang should prevail. PASS FAIL PASS PASS
0257 element with @property and no child nodes generates empty plain literal (HTML5 version of 0113) Checks to make sure that an element with @property and no child nodes generates empty plain literal. PASS PASS PASS PASS
0258 The underscore character is not allowed in xmlns Ensures that a prefix cannot start with an underscore character when specified using xmlns or prefix. PASS PASS PASS PASS
0259 XML+RDFa Initial Context All processors must load the RDFa Core Initial Context. PASS PASS PASS PASS
0261 White space preservation in XMLLiteral Whitespace must be maintained in an XMLLiteral, too PASS PASS PASS PASS
0262 Predicate establishment with @property, with white spaces before and after the attribute value Tests @property to establish the predicate; literal object is in the content of the element. There are extra whitespaces before and after the property attribute value which should be ignored PASS PASS PASS PASS
0263 @property appearing on the html element yields the base as the subject @property appearing on the html element without @content or @datatype yields the base as the subject PASS PASS PASS PASS
0264 @property appearing on the head element gets the subject from , ie, parent @property appearing on the head element gets the subject from , ie, parent PASS PASS PASS PASS
0265 @property appearing on the head element gets the subject from , ie, parent @property appearing on the head element gets the subject from , ie, parent; in this case the parent subject is explicitly set via @about PASS PASS PASS PASS
0266 @property without @content or @datatype, typed object set by @href and @typeof @property without @content or @datatype, typed object set by @href and @typeof PASS PASS PASS PASS
0267 @property without @content or @datatype, typed object set by @resource and @typeof @property without @content or @datatype, typed object set by @resource and @typeof PASS PASS PASS PASS
0268 @property without @content or @datatype, typed object set by @src and @typeof @property without @content or @datatype, typed object set by @src and @typeof PASS PASS PASS PASS
0269 @property appearing on the html element yields the base as the subject, also with @content @property appearing on the html element without @content or @datatype yields the base as the subject, also with @content PASS PASS PASS PASS
0271 Use of @property in HEAD with explicit parent subject via @about @property appearing on the head element gets the subject from parent, also with @content and explicit @about at the top PASS PASS PASS PASS
0272 time element with @datetime an xsd:date The @datetime attribute is used when generating output with valid xsd:date. PASS FAIL PASS PASS
0273 time element with @datetime an xsd:time The @datetime attribute is used when generating output with valid xsd:time. PASS FAIL PASS PASS
0274 time element with @datetime an xsd:dateTime The @datetime attribute is used when generating output with valid xsd:dateTime. PASS FAIL PASS PASS
0275 time element with value an xsd:date The time element value is used when generating output with valid xsd:date. PASS FAIL PASS PASS
0276 time element with value an xsd:time The time element value is used when generating output with valid xsd:time. PASS FAIL PASS PASS
0277 time element with value an xsd:dateTime The time element value is used when generating output with valid xsd:dateTime. PASS FAIL PASS PASS
0278 @datetime overrides @content The @datetime attribute must be utilized when generating output, overriding any value expressed using the @content attribute. PASS FAIL PASS PASS
0279 @datetype used with @datetime overrides default datatype If @datatype is specified, it must override the automatic datatype. PASS FAIL PASS PASS
0280 time element with @datetime an xsd:duration The @datetime attribute is used when generating output with valid xsd:duration. PASS FAIL PASS PASS
0281 time element with @datetime an xsd:gYear The @datetime attribute is used when generating output with valid xsd:gYear. PASS FAIL PASS PASS
0282 time element with @datetime an xsd:gYearMonth The @datetime attribute is used when generating output with valid xsd:gYearMonth. PASS FAIL PASS PASS
0283 time element with @datetime an invalid datatype generates plain literal If the lexical scope of @datetime does not exactly match a known datatype a plain literal is generated. PASS PASS PASS PASS
0284 @data is an IRI attribute The @data attribute generates an IRI. PASS PASS PASS PASS
0285 time element with @datetime an invalid datatype and in scope @lang generates plain literal with language If no @datatype is specified and the value does not match a xsd:dateTime, xsd:date, or xsd:time pattern, a plain literal must be generated with the associated language of the node, if available. PASS FAIL PASS PASS
0286 @value attribute overrides @content the HTML5 @value attribute must be utilized when generating output. If @value is detected, it must override and be processed according to the rules for @content. PASS FAIL PASS PASS
0287 time element with @datetime an xsd:dateTime with TZ offset The @datetime attribute is used when generating output with valid xsd:dateTime and a Time Zone offset. PASS FAIL PASS PASS
0288 object element with @data parses as an IRI @data is a resource attribute. PASS FAIL PASS PASS
0289 @href becomes subject when @property and @content are present When @property and @content are present but @about, @rel and @rev are not, @href is used as subject. PASS PASS PASS PASS
0290 @href becomes subject when @property and @datatype are present When @property and @datatype are present but @about, @rel and @rev are not, @href is used as subject and element content is used as an object literal. PASS PASS PASS PASS
0291 @href as subject overridden by @about When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject. PASS PASS PASS PASS
0292 @about overriding @href as subject is used as parent resource When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject and is also applied to nested descriptions. PASS PASS PASS PASS
0293 Testing the ':' character usage in a CURIE RDFa 1.1 CURIE allows the ':' to appear in the reference part of a CURIE. PASS PASS PASS PASS

A. Processors

This report was tested using the following processors:

any23
Description
Anything To Triples (any23) is a library, a web service and a command line tool that extracts structured data in RDF format from a variety of Web documents
Programming Language
Java
Developer
Digital Enterprise Research Institute
Home Page
http://developers.any23.org/
clj-rdfa
Description
A Clojure library for parsing RDFa 1.1 embedded in XML or HTML
Programming Language
Clojure
Developer
Niklas Lindström
Home Page
https://github.com/niklasl/clj-rdfa/wiki
librdfa
Description
SAX-based implementation of an RDFa Processor in C
Programming Language
C
Developer
Manu Sporny
Home Page
https://github.com/rdfa/librdfa/wiki
pyRdfa
Description
pyRdfa is a distiller that generates RDF triples from an XML or HTML5 file annotated by RDFa in various RDF serialization formats. It can either be used directly from a command line or via a CGI service.
Programming Language
Python
Developer
Ivan Herman
RDF::RDFa
Description
RDF::RDFa is an RDFa reader/writer for Ruby using the RDF.rb library suite.
Programming Language
Ruby
Developer
Gregg Kellogg
Home Page
http://github.com/gkellogg/rdf-rdfa

B. Individual Test Results

Individual test results used to construct this report are available here:

C. Test Definitions

Tests are repeated for each RDFa version and Host Language as necessary, but are based on common tests with minor rewriting based on host language specific attributes.

Input and SPARQL representations are shown for XHTML5, but will have some slight variation for different host languages.

Test 0001: Predicate establishment with @property
Tests @property to establish the predicate; literal object is in the content of the element.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
<head>
   <title>Test 0001</title>
</head>
<body>
   <p>This photo was taken by <span class="author" about="photo1.jpg" property="dc:creator">Mark Birbeck</span>.</p>
</body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
}
Test 0006: @rel and @rev
Tests @rev and @rel together, with the object being specified by @href, ignoring content
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
	<head>
		<title>Test 0006</title>
	</head>
	<body>
		<p>
			This photo was taken by
			<a 	about="photo1.jpg" rel="dc:creator" rev="foaf:img"
   				href="http://www.blogger.com/profile/1109404">Mark Birbeck</a>.
		</p>	
	</body>
</html>
ASK WHERE {
	<http://www.blogger.com/profile/1109404> <http://xmlns.com/foaf/0.1/img> <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/photo1.jpg> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> <http://www.blogger.com/profile/1109404> .
}
Test 0007: @rel, @rev, @property, @content
Tests @rel, @rev, @property, and @content together to generate several RDF triples.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
	<head>
		<title>Test 0007</title>
	</head>
	<body>
		<p>This photo was taken by
			<a 	about="photo1.jpg" property="dc:title"
   				content="Portrait of Mark" rel="dc:creator"
      			rev="foaf:img" href="http://www.blogger.com/profile/1109404">Mark Birbeck</a>.
		</p>	
	</body>
</html>
ASK WHERE {
	<http://www.blogger.com/profile/1109404> <http://xmlns.com/foaf/0.1/img> <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/photo1.jpg> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/photo1.jpg> <http://purl.org/dc/elements/1.1/title> "Portrait of Mark" .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> <http://www.blogger.com/profile/1109404> .
}
Test 0008: empty string @about
Tests empty @about.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:cc="http://creativecommons.org/ns#">
	<head>
		<title>Test 0008</title>
	</head>
  <body>
  	<p>This document is licensed under a
  		<a 	about="" rel="cc:license"
    		href="http://creativecommons.org/licenses/by-nc-nd/2.5/">
       		Creative Commons
  		</a>.
  	</p>	
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0008.xhtml> <http://creativecommons.org/ns#license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> .
}
Test 0009: @rev
Tests @rev.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
	<head>
		<title>Test 0009</title>
    	<link about="http://example.org/people#Person1"
          	  rev="foaf:knows" href="http://example.org/people#Person2" />

  </head>
  <body>
  	<p></p>
  </body>
</html>
ASK WHERE {
	<http://example.org/people#Person2> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person1> .
}
Test 0010: @rel, @rev, @href
Tests @rel, @rev, and @href to generate two RDF triples.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0010</title>
	  	<link about="http://example.org/people#Person1"
          rel="foaf:knows" rev="foaf:knows" href="http://example.org/people#Person2" />
  </head>
  <body>
  	<p></p>
  </body>
</html>
ASK WHERE {
	<http://example.org/people#Person1> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person2> .
	<http://example.org/people#Person2> <http://xmlns.com/foaf/0.1/knows> <http://example.org/people#Person1> .
}
Test 0012: @xml:lang
Tests @xml:lang
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://example.org/">
  <head about="">
	<title>Test 0012</title>
  	<meta about="http://example.org/node" property="ex:property" xml:lang="fr" content="chat" />
  </head>
  <body>
  	<p></p>
  </body>
</html>
ASK WHERE {
	<http://example.org/node> <http://example.org/property> "chat"@fr .
}
Test 0013: @xml:lang inheritance
Tests @xml:lang inheritance
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://example.org/">
  <head about="" xml:lang="fr">
  	<title xml:lang="en">Test 0013</title>
  	<meta about="http://example.org/node" property="ex:property" content="chat" />
  </head>
  <body>
  	<p></p>
  </body>
</html>
ASK WHERE {
	<http://example.org/node> <http://example.org/property> "chat"@fr .
}
Test 0014: @datatype, xsd:integer
Tests setting the @datatype to xsd:integer
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://example.org/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
	<head>
		<title>Test 0014</title>
	</head>
  <body>
  	<p>
  		<span	about="http://example.org/foo"
        		property="ex:bar" content="10" datatype="xsd:integer">ten</span>
	</p>
  </body>
</html>
ASK WHERE {
	<http://example.org/foo> <http://example.org/bar> "10"^^<http://www.w3.org/2001/XMLSchema#integer> .
}
Test 0015: meta and link
Tests meta and link with no parent @about
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
	<title>Test 0015</title>
	<link rel="dc:source" href="urn:isbn:0140449132" />
    <meta property="dc:creator" content="Fyodor Dostoevsky" />
  </head>
  <body>
  	<p></p>
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0015.xhtml> <http://purl.org/dc/elements/1.1/creator> "Fyodor Dostoevsky" .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0015.xhtml> <http://purl.org/dc/elements/1.1/source> <urn:isbn:0140449132> .
}
Test 0017: Related blanknodes
Tests creation of statements involving explicitly created blank nodes.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
	<title>Test 0017</title>   
  </head>
  <body>
  	 <p>
          <span about="[_:a]" property="foaf:name">Manu Sporny</span>
           <span about="[_:a]" rel="foaf:knows"
resource="[_:b]">knows</span>
           <span about="[_:b]" property="foaf:name">Ralph Swick</span>.
        </p>
  </body>
</html>
ASK WHERE {
	?x <http://xmlns.com/foaf/0.1/name> "Manu Sporny" .
	?x <http://xmlns.com/foaf/0.1/knows> ?y .
	?y <http://xmlns.com/foaf/0.1/name> "Ralph Swick" .
    FILTER (isBlank(?x) && isBlank(?y))
}
Test 0018: @rel for predicate
Tests @rel to establish predicate.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
	<title>Test 0018</title>
  </head>
  <body>
  	<p>
	  This photo was taken by
	  <a about="photo1.jpg" rel="dc:creator"
		 href="http://www.blogger.com/profile/1109404">Mark Birbeck</a>.
	</p>	 
  </body>


</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> <http://www.blogger.com/profile/1109404> .
}
Test 0019: @about for subject
Tests @about to establish subject.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
	<title>Test 0019</title>
  </head>
  <body>
    <div about="mailto:manu.sporny@digitalbazaar.com"
      rel="foaf:knows" href="mailto:michael.hausenblas@joanneum.at"></div>
  </body>
</html>
ASK WHERE {
	<mailto:manu.sporny@digitalbazaar.com> <http://xmlns.com/foaf/0.1/knows> <mailto:michael.hausenblas@joanneum.at> .
}
Test 0020: Inheriting @about for subject
Tests @about inheritance to establish subject.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
	<title>Test 0020</title>
  </head>
  <body>
    <div about="photo1.jpg">
      <span class="attribution-line">this photo was taken by
        <span property="dc:creator">Mark Birbeck</span>
      </span>
    </div>
  </body>


</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
}
Test 0021: Subject inheritance with no @about
Tests inheritance of subject when no @about can be found
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
<head>
	<title>Test 0021</title>
</head>
<body>
    <div>
      <span class="attribution-line">this photo was taken by
        <span property="dc:creator">Mark Birbeck</span>
      </span>
    </div>
</body>


</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0021.xhtml> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
}
Test 0023: @id does not generate subjects
Tests that @id does not generate subjects
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
	<title>Test 0023</title>
  </head>
  <body>
    <div id="photo1">
      	This photo was taken by
        <span property="dc:creator">Mark Birbeck</span> 
    </div>
  </body>


</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0023.xhtml> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
}
Test 0025: simple chaining test
Tests simple chaining with cascade of @resource and @property
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
	<title>Test 0025</title>
  </head>
  <body>
  	<p>
    	This paper was written by
    	<span rel="dc:creator" resource="#me">
      		<span property="foaf:name">Ben Adida</span>.
    	</span>
	</p>
  </body>


</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0025.xhtml> <http://purl.org/dc/elements/1.1/creator> <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0025.xhtml#me> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0025.xhtml#me> <http://xmlns.com/foaf/0.1/name> "Ben Adida" .
}
Test 0026: @content
Tests @content for literal object
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
	<title>Test 0026</title>
  </head>
  <body>
  	<p>
		<span 	about="http://internet-apps.blogspot.com/"
	      		property="dc:creator" content="Mark Birbeck" />
	</p>	
  </body>


</html>
ASK WHERE {
	<http://internet-apps.blogspot.com/> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
}
Test 0027: @content, ignore element content
Tests @content for literal object, overriding element content.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
   <title>Test 0027</title>
  </head>
  <body>
  	<p>
    	<span 	about="http://internet-apps.blogspot.com/"
       			property="dc:creator" content="Mark Birbeck">Mark B.
		</span>
	</p>	
  </body>


</html>
ASK WHERE {
	<http://internet-apps.blogspot.com/> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
}
Test 0029: markup stripping with @datatype
Tests markup stripping from a span element with @datatype=xsd:string
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
  <head>
   <title>Test 0029</title>
  </head>
  <body>
  	<p>
    	<span 	about="http://example.org/foo"
	      		property="dc:creator" datatype="xsd:string"><b>M</b>ark <b>B</b>irbeck</span>.
	</p>	  
  </body>


</html>
ASK WHERE {
	<http://example.org/foo> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck"^^<http://www.w3.org/2001/XMLSchema#string> .
}
Test 0030: omitted @about
Tests omitted @about.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:cc="http://creativecommons.org/ns#">
	<head>
		<title>Test 0030</title>
	</head>
  <body>
  	<p>This document is licensed under a
  		<a 	rel="cc:license"
    		href="http://creativecommons.org/licenses/by-nc-nd/2.5/">
       		Creative Commons License
  		</a>.
  	</p>	
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0030.xhtml> <http://creativecommons.org/ns#license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> .
}
Test 0031: simple @resource
Tests if @resource sets URIref object correct.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
	<title>Test 0031</title>
  </head>
  <body>
  	<p about="#wtw">
  	  The book <b>Weaving the Web</b> (hardcover) has the ISBN
  	  <span rel="dc:identifier" resource="urn:ISBN:0752820907">0752820907</span>.
  	</p>	
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0031.xhtml#wtw> <http://purl.org/dc/elements/1.1/identifier> <urn:ISBN:0752820907> .
}
Test 0032: @resource overrides @href
Tests if @resource overrides @href to set the URIref object.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<head>
		<title>Test 0032</title>
	</head>
  <body>
  	<p about="#wtw">
  	  The book <b>Weaving the Web</b> (hardcover) has the ISBN
  	  <a rel="dc:identifier" resource="urn:ISBN:0752820907" 
  	  href="http://www.amazon.com/Weaving-Web-Tim-Berners-Lee/dp/0752820907">0752820907</a>.
  	</p>
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0032.xhtml#wtw> <http://purl.org/dc/elements/1.1/identifier> <urn:ISBN:0752820907> .
}
Test 0033: simple chaining test with bNode
Tests simple chaining with cascade of bNode and @property
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
	<title>Test 0033</title>
  </head>
  <body>
  	<p>
    	This paper was written by
    	<span rel="dc:creator">
      		<span property="foaf:name">Ben Adida</span>.
    	</span>
	</p>
  </body>


</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0033.xhtml> <http://purl.org/dc/elements/1.1/creator> ?a .
	?a <http://xmlns.com/foaf/0.1/name> "Ben Adida" .
	FILTER isBlank(?a)
}
Test 0034: simple img[@src] test
Tests if a @src (in img element) correctly sets the URIref object
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0034</title>    
  </head>
  <body>
  	<div about="http://sw-app.org/mic.xhtml#i" rel="foaf:img">
  	  <img 	src="http://sw-app.org/img/mic_2007_01.jpg" 
  	   		alt="A photo depicting Michael" />
  	</div>
  </body>
</html>
ASK WHERE {
	<http://sw-app.org/mic.xhtml#i> <http://xmlns.com/foaf/0.1/img> <http://sw-app.org/img/mic_2007_01.jpg> .
}
Test 0035: @src/@href test
Tests if @href overwrites @src
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0035</title>    
  </head>
  <body>
  	<div>
      <img 	about="http://sw-app.org/mic.xhtml#i"
  	   		rel="foaf:img"
  	   		src="http://sw-app.org/img/mic_2007_01.jpg" 
  	   		href="http://sw-app.org/img/mic_2006_03.jpg" 
  	   		alt="A photo depicting Michael" />  	
  	</div>
  </body>
</html>
ASK WHERE {
	<http://sw-app.org/mic.xhtml#i> <http://xmlns.com/foaf/0.1/img> <http://sw-app.org/img/mic_2006_03.jpg> .
}
Test 0036: @src/@resource test
Tests if @resource overwrites @src
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0036</title>    
  </head>
  <body>
  	<div>
      <img 	about="http://sw-app.org/mic.xhtml#i"
  	   		rel="foaf:img"
  	   		src="http://sw-app.org/img/mic_2007_01.jpg" 
  	   		resource="http://sw-app.org/img/mic_2006_03.jpg" 
  	   		alt="A photo depicting Michael" />  	
  	</div>
  </body>
</html>
ASK WHERE {
	<http://sw-app.org/mic.xhtml#i> <http://xmlns.com/foaf/0.1/img> <http://sw-app.org/img/mic_2006_03.jpg> .
}
Test 0037: @src/@href/@resource test
Tests if @resource overwrites both @href and @src
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0037</title>    
  </head>
  <body>
  	<div>
      <img 	about="http://sw-app.org/mic.xhtml#i"
  	   		rel="foaf:img"
  	   		src="http://sw-app.org/img/mic_2007_01.jpg" 
  	   		href="http://sw-app.org/img/mic_2006_03.jpg"
  	   		resource="http://sw-app.org/mic.xhtml#photo" 
  	   		alt="A photo depicting Michael" />  	
  	</div>
  </body>
</html>
ASK WHERE {
	<http://sw-app.org/mic.xhtml#i> <http://xmlns.com/foaf/0.1/img> <http://sw-app.org/mic.xhtml#photo> .
}
Test 0038: @rev - img[@src] test
Tests if a @src (in img element) correctly sets the URIref subject (due to @rev)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0038</title>    
  </head>
  <body>
  	<div about="http://sw-app.org/mic.xhtml#i" rev="foaf:depicts">
  	  <img 	src="http://sw-app.org/img/mic_2007_01.jpg" 
  	   		alt="A photo depicting Michael" />
  	</div>
  </body>
</html>
ASK WHERE {
	<http://sw-app.org/img/mic_2007_01.jpg> <http://xmlns.com/foaf/0.1/depicts> <http://sw-app.org/mic.xhtml#i> .
}
Test 0039: @rev - @src/@href test
Tests if @href overwrites @src correctly to set the URIref subject (due to @rev)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0039</title>    
  </head>
  <body>
  	<div>
      <img 	about="http://sw-app.org/mic.xhtml#i"
  	   		rev="foaf:depicts"
  	   		src="http://sw-app.org/img/mic_2007_01.jpg" 
  	   		href="http://sw-app.org/img/mic_2006_03.jpg" 
  	   		alt="A photo depicting Michael" />  	
  	</div>
  </body>
</html>
ASK WHERE {
	<http://sw-app.org/img/mic_2006_03.jpg> <http://xmlns.com/foaf/0.1/depicts> <http://sw-app.org/mic.xhtml#i> .
}
Test 0041: @rev - @src/@href/@resource test
Tests if @resource overwrites both @href and @src correctly to set the URIref subject (due to @rev)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0041</title>    
  </head>
  <body>
  	<div>
      <img 	about="http://sw-app.org/mic.xhtml#i"
  	   		rev="foaf:depicts"
  	   		src="http://sw-app.org/img/mic_2007_01.jpg" 
  	   		href="http://sw-app.org/img/mic_2006_03.jpg"
  	   		resource="http://sw-app.org/mic.xhtml#photo" 
  	   		alt="A photo depicting Michael" />  	
  	</div>
  </body>
</html>
ASK WHERE {
	<http://sw-app.org/mic.xhtml#photo> <http://xmlns.com/foaf/0.1/depicts> <http://sw-app.org/mic.xhtml#i> .
}
Test 0048: @typeof with @about and @rel present, no @resource
Tests @typeof with @about and @rel present, no @resource
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0048</title>    
  </head>
  <body>
  	<div about="http://www.example.org/#me" rel="foaf:knows" typeof="foaf:Person">
	    <p property="foaf:name">John Doe</p>
   	</div>
  </body>
</html>
ASK WHERE {
	<http://www.example.org/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
	<http://www.example.org/#me> <http://xmlns.com/foaf/0.1/knows> ?a .
	?a <http://xmlns.com/foaf/0.1/name> "John Doe" .
	FILTER isBlank(?a)
}
Test 0049: @typeof with @about, no @rel or @resource
Tests @typeof with @about, no @rel or @resource
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0049</title>    
  </head>
  <body>
  	<div about="http://www.example.org/#me" typeof="foaf:Person">
	    <p property="foaf:name">John Doe</p>
   	</div>
  </body>
</html>
ASK WHERE {
	<http://www.example.org/#me> <http://xmlns.com/foaf/0.1/name> "John Doe" .
	<http://www.example.org/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
}
Test 0050: @typeof without anything else
Tests @typeof without anything else
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0050</title>    
  </head>
  <body>
  	<div typeof="foaf:Person">
	    <p property="foaf:name">John Doe</p>
   	</div>
  </body>
</html>
ASK WHERE {
	?a <http://xmlns.com/foaf/0.1/name> "John Doe" .
	?a <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
	FILTER isBlank(?a)
}
Test 0051: @typeof with a single @property
Tests @typeof with a single @property
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0051</title>    
  </head>
  <body>
  	<p about="" typeof="foaf:Document" property="foaf:topic">John Doe</p>
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0051.xhtml> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0051.xhtml>  <http://xmlns.com/foaf/0.1/topic> "John Doe" .	
}
Test 0052: @typeof with @resource and nothing else
Tests to ensure that @typeof does not apply to @resource
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0052</title>    
  </head>
  <body>
  	<p typeof="foaf:Person" resource="http://www.example.org/#me">
	    John Doe
   	</p>
  </body>
</html>
ASK WHERE {
	<http://www.example.org/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
}
Test 0053: @typeof with @resource and nothing else, with a subelement
Tests to make sure that @typeof does not apply to @resource, but @resource sets the subject for the next triple to be generated
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0053</title>    
  </head>
  <body>
  	<p typeof="foaf:Person" resource="http://www.example.org/#me">
	    <span property="foaf:name">John Doe</span>
   	</p>
  </body>
</html>
ASK WHERE {
	<http://www.example.org/#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
	<http://www.example.org/#me> <http://xmlns.com/foaf/0.1/name> "John Doe" .
}
Test 0054: multiple @property
Tests multiple @property separated by white spaces
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
		<title>Test 0054</title>    
  </head>
  <body>
  	<p>
		This document was authored and published by  		
		<span about="" property="dc:creator dc:publisher">Fabien Gandon</span>.
  	</p>
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0054.xhtml> <http://purl.org/dc/elements/1.1/creator> "Fabien Gandon" .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0054.xhtml> <http://purl.org/dc/elements/1.1/publisher> "Fabien Gandon" .
}
Test 0055: multiple @rel
Tests multiple @rel separated by white spaces
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
		<title>Test 0055</title>    
  </head>
  <body>
  	<p>
		This document was authored and published by
		<a about="" rel="dc:creator dc:publisher" href="http://www-sop.inria.fr/acacia/fabien/">Fabien Gandon</a>.
	</p>
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0055.xhtml> <http://purl.org/dc/elements/1.1/creator> <http://www-sop.inria.fr/acacia/fabien/> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0055.xhtml> <http://purl.org/dc/elements/1.1/publisher> <http://www-sop.inria.fr/acacia/fabien/> .
}
Test 0056: @typeof applies to @about on same element with hanging rel
Tests if @typeof applies to @about on same element with hanging @rel
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
    <title>Test 0056</title>
  </head>
  <body>
    <div about="http://www.example.org/#ben" typeof="foaf:Person" rel="foaf:knows">
      <p about="http://www.example.org/#mark" property="foaf:name">Mark Birbeck</p>
    </div>
  </body>
</html>
ASK WHERE {
	<http://www.example.org/#ben> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
	<http://www.example.org/#ben> <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#mark> .
	<http://www.example.org/#mark> <http://xmlns.com/foaf/0.1/name> "Mark Birbeck" .
}
Test 0057: hanging @rel creates multiple triples
Tests if hanging @rel creates multiple triples
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
    <title>Test 0057</title>
  </head>
  <body>
    <div about="http://www.example.org/#ben" rel="foaf:knows">
      <p about="http://www.example.org/#mark" property="foaf:name">Mark Birbeck</p>
      <p about="http://www.example.org/#ivan" property="foaf:name">Ivan Herman</p>
    </div>
  </body>
</html>
ASK WHERE {
	<http://www.example.org/#ben> <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#mark> .
	<http://www.example.org/#ben> <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#ivan> .
	<http://www.example.org/#mark> <http://xmlns.com/foaf/0.1/name> "Mark Birbeck" .
	<http://www.example.org/#ivan> <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
}
Test 0059: multiple hanging @rels with multiple children
Tests multiple hanging @rels with multiple children
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
    <title>Test 0059</title>
  </head>
  <body>
    <p>This document was authored and published by:</p>
    <ul rel="dc:creator dc:publisher">
      <li about="http://www.example.org/#manu" property="foaf:name">Manu Sporny</li>
      <li about="http://www.example.org/#fabien" property="foaf:name">Fabien Gandon</li>
    </ul>
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0059.xhtml> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/#manu> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0059.xhtml> <http://purl.org/dc/elements/1.1/publisher> <http://www.example.org/#manu> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0059.xhtml> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/#fabien> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0059.xhtml> <http://purl.org/dc/elements/1.1/publisher> <http://www.example.org/#fabien> .
	<http://www.example.org/#manu> <http://xmlns.com/foaf/0.1/name> "Manu Sporny" .
	<http://www.example.org/#fabien> <http://xmlns.com/foaf/0.1/name> "Fabien Gandon" .
}
Test 0060: UTF-8 conformance
Tests conformance with UTF-8 encoding
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
    <title>Test 0060</title>
  </head>
  <body>
    <div about="http://www.example.org/#matsumoto-kimiko"
         typeof="foaf:Person">
      <p property="foaf:name">松本 后子</p>
    </div>
  </body>
</html>
ASK WHERE {
<http://www.example.org/#matsumoto-kimiko> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<http://www.example.org/#matsumoto-kimiko> <http://xmlns.com/foaf/0.1/name> "松本 后子" .
}
Test 0061: @rel in head using reserved, non-prefixed XHTML value
Tests @rel in head using reserved, non-prefixed XHTML value
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Test 0061</title>
      <link rel="next" href="http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0062.xhtml" />
   </head>
   <body>
      <p>This is the first chapter in a series of chapters.</p>
   </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0061.xhtml> <http://www.w3.org/1999/xhtml/vocab#next> <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0062.xhtml> .
}
Test 0062: @rev in head using reserved, non-prefixed XHTML value
Tests @rev in head using reserved, non-prefixed XHTML value
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Test 0062</title>
      <link rev="prev" href="http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0063.xhtml" />
   </head>
   <body>
      <p>This is unit test #62. The next unit test is #63.</p>
   </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0063.xhtml> <http://www.w3.org/1999/xhtml/vocab#prev> <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0062.xhtml> .
}
Test 0063: @rel in head using reserved XHTML value and empty-prefix CURIE syntax
Tests @rel in head using reserved XHTML value and empty-prefix CURIE syntax
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Test 0063</title>
      <link rel=":next" href="http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0064.xhtml" />
   </head>
   <body>
      <p>This is the 63<sup>rd</sup> test. The next test is #64.</p>
   </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0063.xhtml> <http://www.w3.org/1999/xhtml/vocab#next> <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0064.xhtml> .
}
Test 0064: @about with safe CURIE
Tests if @about generates a proper triple when a safe CURIE is used
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
    <title>Test 0064</title>
  </head>
  <body>
    <p about="[_:michael]">Michael knows
      <a rel="foaf:knows" href="http://digitalbazaar.com/people/manu">Manu</a>.
    </p>
  </body>
</html>
ASK WHERE {
	?a <http://xmlns.com/foaf/0.1/knows> <http://digitalbazaar.com/people/manu> .
	FILTER isBlank(?a)
}
Test 0065: @rel with safe CURIE
Tests if @rel properly connects triples generated when safe CURIEs are used
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
    <title>Test 0065</title>
  </head>
    <body>
    <div about="[_:manu]">
      Manu Sporny can be reached via
      <a rel="foaf:mbox" href="mailto:manu.sporny@digitalbazaar.com">email</a>.
      <span rel="foaf:knows" resource="[_:michael]">He knows Michael.</span>
    </div>

    <div about="[_:michael]">
      Michael can be reached via
      <a rel="foaf:mbox" href="mailto:michael.hausenblas@joanneum.at">email</a>.
    </div>
  </body>


</html>
ASK WHERE {
	?a <http://xmlns.com/foaf/0.1/mbox> <mailto:manu.sporny@digitalbazaar.com> .
	?b <http://xmlns.com/foaf/0.1/mbox> <mailto:michael.hausenblas@joanneum.at> .
	?a <http://xmlns.com/foaf/0.1/knows> ?b .
	FILTER ( isBlank(?a) && isBlank(?b) )
}
Test 0066: @about with @typeof in the head
Test to make sure that @about (with current document) is implied in the head, and the proper triples are generated using @typeof
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
   <head typeof="foaf:Document">
      <title>Test 0066</title>
   </head>
   <body>
      <p>This is test #66.</p>
   </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0066.xhtml> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document> .
}
Test 0067: @property in the head
Test to make sure that @property in head uses the implied current document as the subject if no other subject is specified
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
   <head>
      <title property="foaf:topic">Test 0067</title>
   </head>
   <body>
      <p>This is test #67.</p>
   </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0067.xhtml> <http://xmlns.com/foaf/0.1/topic> "Test 0067" .
}
Test 0068: Relative URI in @about
Tests to ensure that relative URI is resolved correctly when used in @about
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <head>
      <title>Test 0068</title>
   </head>
   <body>
      <p about="0067.xhtml">
         The previous test was
         <span property="dc:title">Test 0067</span>.
      </p>
   </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0067.xhtml> <http://purl.org/dc/elements/1.1/title> "Test 0067" .
}
Test 0069: Relative URI in @href
Tests to ensure that relative URI is resolved correctly when used in @href
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#">
   <head>
      <title>Test 0069</title>
   </head>
   <body>
      <p>The next test will be
         <a about="" rel="xhv:next" href="0070.xhtml">Test 0070</a>.
      </p>
   </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0069.xhtml> <http://www.w3.org/1999/xhtml/vocab#next> <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0070.xhtml> .
}
Test 0070: Relative URI in @resource
Tests to ensure that relative URI is resolved correctly when used in @resource
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#">
   <head>
      <title>Test 0070</title>
   </head>
   <body>
      <p>The previous test was
         <span about="" rel="xhv:prev" resource="0069.xhtml">Test 0069</span>.
      </p>
   </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0070.xhtml> <http://www.w3.org/1999/xhtml/vocab#prev> <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0069.xhtml> .
}
Test 0071: No explicit @about
Tests to ensure that a triple is generated even if @typeof and @about is not specified anywhere in the document
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:cc="http://creativecommons.org/ns#">
   <head>
      <title>Test 0071</title>
   </head>
   <body>
      <p>This page is under a Creative Commons
         <a rel="cc:license"
            href="http://creativecommons.org/licenses/by-nd/3.0/">
          Attribution-No Derivatives 3.0 license</a>.
      </p>
   </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0071.xhtml> <http://creativecommons.org/ns#license> <http://creativecommons.org/licenses/by-nd/3.0/> .
}
Test 0072: Relative URI in @about (with XHTML base in head)
Tests to ensure that relative URIs are resolved correctly when used in @about with XHTML base set in head
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <head>
      <base href="http://www.example.org/"></base>
      <title>Test 0072</title>
   </head>
   <body>
      <p about="faq">
         Learn more by reading the example.org
         <span property="dc:title">Example FAQ</span>.
      </p>
   </body>
</html>
ASK WHERE {
	<http://www.example.org/faq> <http://purl.org/dc/elements/1.1/title> "Example FAQ" .
}
Test 0073: Relative URI in @resource (with XHTML base in head)
Tests to ensure that relative URIs are resolved correctly when used in @resource with XHTML base set in head
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <head>
      <base href="http://www.example.org/"></base>
      <title>Test 0073</title>
   </head>
   <body>
      <p>
        This article was written by
      	<span rel="dc:creator" resource="jane">Jane</span>.
      </p>
   </body>
</html>
ASK WHERE {
	<http://www.example.org/> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/jane> .
}
Test 0074: Relative URI in @href (with XHTML base in head)
Tests to ensure that relative URIs are resolved correctly when used in @href with XHTML base set in head
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <head>
      <base href="http://www.example.org/"></base>
      <title>Test 0074</title>
   </head>
   <body>
     <p>
     	This article was written by
      	<a rel="dc:creator" href="jane">Jane</a>.
	 </p>
   </body>
</html>
ASK WHERE {
	<http://www.example.org/> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/jane> .
}
Test 0075: Reserved word 'license' in @rel with no explizit @about
Tests to ensure that the XHTML+RDFa reserved word 'license' when used in @rel (with no @about) generates the proper triple
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <head>
      <base href="http://www.example.org/"></base>
      <title>Test 0075</title>
   </head>
   <body>
   	<p>
    	This page is under a Creative Commons
        <a rel="license" href="http://creativecommons.org/licenses/by-nd/3.0/">Attribution-No Derivatives 3.0 license</a>.
    </p>
   </body>
</html>
ASK WHERE {
	<http://www.example.org/> <http://www.w3.org/1999/xhtml/vocab#license> <http://creativecommons.org/licenses/by-nd/3.0/> .
}
Test 0076: All reserved XHTML @rel values
Tests to ensure that all reserved XHTML words are supported in @rel
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Test 0076</title>
   </head>
   <body>
      <p>
         <a rel="alternate" href="http://example.org/alternate">alternate</a>
         <a rel="appendix" href="http://example.org/appendix">appendix</a>
         <a rel="bookmark" href="http://example.org/bookmark">bookmark</a>
         <a rel="cite" href="http://example.org/cite">cite</a>
         <a rel="chapter" href="http://example.org/chapter">chapter</a>
         <a rel="contents" href="http://example.org/contents">contents</a>
         <a rel="copyright" href="http://example.org/copyright">copyright</a>
         <a rel="glossary" href="http://example.org/glossary">glossary</a>
         <a rel="help" href="http://example.org/help">help</a>
         <a rel="icon" href="http://example.org/icon">icon</a>
         <a rel="index" href="http://example.org/index">index</a>
         <a rel="last" href="http://example.org/last">last</a>
         <a rel="license" href="http://example.org/license">license</a>
         <a rel="meta" href="http://example.org/meta">meta</a>
         <a rel="next" href="http://example.org/next">next</a>
         <a rel="p3pv1" href="http://example.org/p3pv1">p3pv1</a>
         <a rel="prev" href="http://example.org/prev">prev</a>
         <a rel="role" href="http://example.org/role">role</a>
         <a rel="section" href="http://example.org/section">section</a>
         <a rel="subsection" href="http://example.org/subsection">subsection</a>
         <a rel="start" href="http://example.org/start">start</a>
		 <a rel="stylesheet" href="http://example.org/stylesheet">stylesheet</a>
         <a rel="up" href="http://example.org/up">up</a>
      </p>
   </body>
</html>
ASK WHERE { <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#alternate>
      <http://example.org/alternate> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#appendix>
      <http://example.org/appendix> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#bookmark>
      <http://example.org/bookmark> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#cite>
      <http://example.org/cite> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#chapter>
      <http://example.org/chapter> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#contents>
      <http://example.org/contents> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#copyright>
      <http://example.org/copyright> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#glossary>
      <http://example.org/glossary> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#help>
      <http://example.org/help> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#icon>
      <http://example.org/icon> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#index>
      <http://example.org/index> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#meta>
      <http://example.org/meta> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#next>
      <http://example.org/next> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#p3pv1>
      <http://example.org/p3pv1> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#prev>
      <http://example.org/prev> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#role>
      <http://example.org/role> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#section>
      <http://example.org/section> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#subsection>
      <http://example.org/subsection> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#start>
      <http://example.org/start> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#license>
      <http://example.org/license> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#up>
      <http://example.org/up> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#last>
      <http://example.org/last> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0076.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#stylesheet>
      <http://example.org/stylesheet> .      
}
Test 0077: All reserved XHTML @rev values
Tests to ensure that all reserved XHTML words are supported in @rev
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Test 0077</title>
   </head>
   <body>
       <p>
         <span about="http://example.org/alternate" rev="alternate"
               href="0077.xhtml">alternate</span>
         <span about="http://example.org/appendix" rev="appendix"
               href="0077.xhtml">appendix</span>
         <span about="http://example.org/bookmark" rev="bookmark"
               href="0077.xhtml">bookmark</span>
         <span about="http://example.org/cite" rev="cite"
               href="0077.xhtml">cite</span>
         <span about="http://example.org/chapter" rev="chapter"
               href="0077.xhtml">chapter</span>
         <span about="http://example.org/contents" rev="contents"
               href="0077.xhtml">contents</span>
         <span about="http://example.org/copyright" rev="copyright"
               href="0077.xhtml">copyright</span>
         <span about="http://example.org/glossary" rev="glossary"
               href="0077.xhtml">glossary</span>
         <span about="http://example.org/help" rev="help"
               href="0077.xhtml">help</span>
         <span about="http://example.org/icon" rev="icon"
               href="0077.xhtml">icon</span>
         <span about="http://example.org/index" rev="index"
               href="0077.xhtml">index</span>
         <span about="http://example.org/first" rev="first"
               href="0077.xhtml">first</span>
         <span about="http://example.org/last" rev="last"
               href="0077.xhtml">last</span>
         <span about="http://example.org/license" rev="license"
               href="0077.xhtml">license</span>
         <span about="http://example.org/meta" rev="meta"
               href="0077.xhtml">meta</span>
         <span about="http://example.org/next" rev="next"
               href="0077.xhtml">next</span>
         <span about="http://example.org/p3pv1" rev="p3pv1"
               href="0077.xhtml">p3pv1</span>
         <span about="http://example.org/prev" rev="prev"
               href="0077.xhtml">prev</span>
         <span about="http://example.org/role" rev="role"
               href="0077.xhtml">role</span>
         <span about="http://example.org/section" rev="section"
               href="0077.xhtml">section</span>
         <span about="http://example.org/subsection" rev="subsection"
               href="0077.xhtml">subsection</span>
         <span about="http://example.org/start" rev="start"
               href="0077.xhtml">start</span>
		<span about="http://example.org/stylesheet" rev="stylesheet"
               href="0077.xhtml">stylesheet</span>			   
         <span about="http://example.org/up" rev="up"
               href="0077.xhtml">up</span>
      </p>
   </body>
</html>
ASK WHERE { <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#alternate>
      <http://example.org/alternate> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#appendix>
      <http://example.org/appendix> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#bookmark>
      <http://example.org/bookmark> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#cite>
      <http://example.org/cite> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#chapter>
      <http://example.org/chapter> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#contents>
      <http://example.org/contents> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#copyright>
      <http://example.org/copyright> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#glossary>
      <http://example.org/glossary> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#help>
      <http://example.org/help> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#icon>
      <http://example.org/icon> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#index>
      <http://example.org/index> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#meta>
      <http://example.org/meta> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#next>
      <http://example.org/next> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#p3pv1>
      <http://example.org/p3pv1> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#prev>
      <http://example.org/prev> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#role>
      <http://example.org/role> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#section>
      <http://example.org/section> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#subsection>
      <http://example.org/subsection> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#start>
      <http://example.org/start> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#license>
      <http://example.org/license> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#up>
      <http://example.org/up> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#first>
      <http://example.org/first> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#last>
      <http://example.org/last> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0077.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#stylesheet>
      <http://example.org/stylesheet> .      
}
Test 0079: @resource and @href in completing incomplete triples
Tests role of @resource and @href in completing incomplete triples (including their mutual priorities)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0079</title>    
  </head>
  <body>    
	<div about ="http://www.example.org/#somebody" rel="foaf:knows">
	    <p resource="http://www.ivan-herman.org/Ivan_Herman">Ivan Herman</p>
	    <p href="http://www.w3.org/People/Berners-Lee/card#i">Tim Berners Lee</p>
	    <p resource="http://danbri.org/foaf.rdf#danbri" href="http://www.leobard.net/rdf/foaf.xml#me">Dan Brickley</p>
	</div>
  </body>
</html>
ASK WHERE {
    <http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows>
		<http://www.ivan-herman.org/Ivan_Herman> ,
		<http://www.w3.org/People/Berners-Lee/card#i> ,
		<http://danbri.org/foaf.rdf#danbri> .
}
Test 0080: @about overrides @resource in incomplete triples
Tests if @about has a higher priority than @resource in handling incomplete triples
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0080</title>    
  </head>
  <body>
	<div about ="http://www.example.org/#somebody" rel="foaf:knows">
	    <p about="http://danbri.org/foaf.rdf#danbri" resource="http://www.leobard.net/rdf/foaf.xml#me">Dan Brickley</p>
	</div>
  </body>
</html>
ASK WHERE {
    <http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows> <http://danbri.org/foaf.rdf#danbri> .
}
Test 0083: multiple ways of handling incomplete triples (merged)
Tests multiple ways of handling incomplete triples; the first two triples should use the same bNode as subject ('merged'); the third case should use @about
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0083</title>    
  </head>
  <body>
	<div about="http://www.example.org/#somebody" rel="foaf:knows">
	    <p property="foaf:name">Ivan Herman</p>
		<p rel="foaf:mailbox" resource="mailto:ivan@w3.org">mailto:ivan@w3.org</p>
		<p about="http://danbri.org/foaf.rdf#danbri" typeof="foaf:Person" property="foaf:name">Dan Brickley</p>
	</div>
  </body>
</html>
ASK WHERE {    
	<http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows> ?a .
	<http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows> <http://danbri.org/foaf.rdf#danbri> .
	?a <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
   	?a <http://xmlns.com/foaf/0.1/mailbox> <mailto:ivan@w3.org> .
	<http://danbri.org/foaf.rdf#danbri> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
	<http://danbri.org/foaf.rdf#danbri> <http://xmlns.com/foaf/0.1/name> "Dan Brickley" .		
	FILTER isBlank(?a)
}
Test 0084: multiple ways of handling incomplete triples, this time with both @rel and @rev
Tests multiple ways of handling incomplete triples, this time with both @rel and @rev. There is an intermediate div that should be ignored by the process
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0084</title>    
  </head>
  <body>
	<div about ="http://www.example.org/#somebody" rev="foaf:knows" rel="foaf:knows">
	    <div>
		    <p property="foaf:name">Ivan Herman</p>
			<p rel="foaf:mailbox" resource="mailto:ivan@w3.org">mailto:ivan@w3.org</p>
			<p about="http://danbri.org/foaf.rdf#danbri" typeof="foaf:Person" property="foaf:name">Dan Brickley</p>
			
		</div>
	</div>
  </body>
</html>
ASK WHERE {
	<http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows> ?a .
	<http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows>  <http://danbri.org/foaf.rdf#danbri> .
	?a <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#somebody> .
	?a <http://xmlns.com/foaf/0.1/mailbox> <mailto:ivan@w3.org> .
	?a <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
	<http://danbri.org/foaf.rdf#danbri> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
	<http://danbri.org/foaf.rdf#danbri> <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#somebody> .
	<http://danbri.org/foaf.rdf#danbri> <http://xmlns.com/foaf/0.1/name> "Dan Brickley" .
	FILTER isBlank(?a)	 
}
Test 0085: @resource and @href in completing incomplete triples
Tests the role of @resource and @href in completing incomplete triples (including their mutual priorities), but with an intermediate layer (ie, bNode) added
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0085</title>    
  </head>
  <body>
	<div about ="http://www.example.org/#somebody" rel="foaf:knows">
	   <div rel="foaf:knows">
		    <p resource="http://www.ivan-herman.org/Ivan_Herman">Ivan Herman</p>
		    <p href="http://www.w3.org/People/Berners-Lee/card#i">Tim Berners Lee</p>
		    <p resource="http://danbri.org/foaf.rdf#danbri" href="http://www.leobard.net/rdf/foaf.xml#me">Dan Brickley</p>
	   </div>
	</div>
  </body>
</html>
ASK WHERE {
    <http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows> _:a.
	_:a	<http://xmlns.com/foaf/0.1/knows> <http://www.ivan-herman.org/Ivan_Herman> ,
		<http://www.w3.org/People/Berners-Lee/card#i> ,
		<http://danbri.org/foaf.rdf#danbri> .
}
Test 0087: All reserved XHTML @rel values (with :xxx)
Tests to ensure that all reserved XHTML words are supported in @rel (with :xxx)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Test 0087</title>
   </head>
   <body>
      <p>
         <a rel=":alternate" href="http://example.org/alternate">alternate</a>
         <a rel=":appendix" href="http://example.org/appendix">appendix</a>
         <a rel=":bookmark" href="http://example.org/bookmark">bookmark</a>
         <a rel=":cite" href="http://example.org/cite">cite</a>
         <a rel=":chapter" href="http://example.org/chapter">chapter</a>
         <a rel=":contents" href="http://example.org/contents">contents</a>
         <a rel=":copyright" href="http://example.org/copyright">copyright</a>
         <a rel=":glossary" href="http://example.org/glossary">glossary</a>
         <a rel=":help" href="http://example.org/help">help</a>
         <a rel=":icon" href="http://example.org/icon">icon</a>
         <a rel=":index" href="http://example.org/index">index</a>
         <a rel=":first" href="http://example.org/first">first</a>
         <a rel=":last" href="http://example.org/last">last</a>
         <a rel=":license" href="http://example.org/license">license</a>
         <a rel=":meta" href="http://example.org/meta">meta</a>
         <a rel=":next" href="http://example.org/next">next</a>
         <a rel=":p3pv1" href="http://example.org/p3pv1">p3pv1</a>
         <a rel=":prev" href="http://example.org/prev">prev</a>
         <a rel=":role" href="http://example.org/role">role</a>
         <a rel=":section" href="http://example.org/section">section</a>
         <a rel=":subsection" href="http://example.org/subsection">subsection</a>
         <a rel=":start" href="http://example.org/start">start</a>
         <a rel=":stylesheet" href="http://example.org/stylesheet">stylesheet</a>
         <a rel=":up" href="http://example.org/up">up</a>
      </p>
   </body>
</html>
ASK WHERE { <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#alternate>
      <http://example.org/alternate> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#appendix>
      <http://example.org/appendix> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#bookmark>
      <http://example.org/bookmark> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#cite>
      <http://example.org/cite> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#chapter>
      <http://example.org/chapter> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#contents>
      <http://example.org/contents> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#copyright>
      <http://example.org/copyright> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#glossary>
      <http://example.org/glossary> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#help>
      <http://example.org/help> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#icon>
      <http://example.org/icon> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#index>
      <http://example.org/index> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#meta>
      <http://example.org/meta> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#next>
      <http://example.org/next> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#p3pv1>
      <http://example.org/p3pv1> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#prev>
      <http://example.org/prev> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#role>
      <http://example.org/role> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#section>
      <http://example.org/section> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#subsection>
      <http://example.org/subsection> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#start>
      <http://example.org/start> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#license>
      <http://example.org/license> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#up>
      <http://example.org/up> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#first>
      <http://example.org/first> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#last>
      <http://example.org/last> .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0087.xhtml>
   <http://www.w3.org/1999/xhtml/vocab#stylesheet>
      <http://example.org/stylesheet> .
}
Test 0088: Interpretation of the CURIE "_:"
Test the interpretation of the CURIE "_:"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0088</title>    
  </head>
  <body>
	<div about ="http://www.example.org/#somebody" rel="foaf:knows">
	    <p about="[_:]" property="foaf:name">Dan Brickley</p>
	    <p about="[_:]" typeof="foaf:Person">Dan Brickley again:-)</p>
	</div>
  </body>
</html>
ASK WHERE {
 <http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows> ?a .
 ?a <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
 ?a <http://xmlns.com/foaf/0.1/name> "Dan Brickley" .
 FILTER isBlank(?a)
}
Test 0089: @src sets a new subject (@typeof)
Tests to ensure that @src sets a new subject (focuses on @typeof).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
 <head profile="http://www.w3.org/1999/xhtml/vocab">
      <title>Test 0089</title>
   </head>
   <body>
      <div>
      	<img src="http://example.org/example.png" typeof="foaf:Image" alt="example image" />
      </div>
   </body>
</html>
ASK WHERE {
 <http://example.org/example.png> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Image> .
}
Test 0091: Non-reserved, un-prefixed CURIE in @property
Tests to ensure that non-reserved, un-prefixed CURIEs, when used in @property, generate triples.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
 <head profile="http://www.w3.org/1999/xhtml/vocab">
      <title>Test 0091</title>
   </head>
   <body>
      <p about="[_:human]">
         A human is
         <span property=":definition">a bi-pedal primate</span>.
         They are quite possibly one of the most
         <span property=":note">confused animal</span>s residing in the 
		 <span property=":foo">Milky Way</span>.
      </p>
   </body>
</html>
ASK WHERE {
 ?a <http://www.w3.org/1999/xhtml/vocab#definition> "a bi-pedal primate" .
 ?a <http://www.w3.org/1999/xhtml/vocab#note> "confused animal" .
 ?a <http://www.w3.org/1999/xhtml/vocab#foo> "Milky Way" .
 FILTER isBlank(?a)
}
Test 0093: Tests XMLLiteral content with explicit @datatype (user-data-typed literal)
Tests the explicit specification of an RDF XMLLiteral with @datatype using a non-RDF namespace, yielding a user-data-typed literal
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:ex="http://www.example.org/">
  <head profile="http://www.w3.org/1999/xhtml/vocab">
	<title>Test 0093</title>
  </head>
  <body>
  	<div about="">
      Author: <span property="dc:creator">Albert Einstein</span>
      <h2 property="dc:title" datatype="ex:XMLLiteral">E = mc<sup>2</sup>: The Most Urgent Problem of Our Time</h2>
	</div>
  </body>
</html>
ASK WHERE {
 <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0093.xhtml> <http://purl.org/dc/elements/1.1/creator> "Albert Einstein" .
 <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0093.xhtml> <http://purl.org/dc/elements/1.1/title> "E = mc2: The Most Urgent Problem of Our Time"^^<http://www.example.org/XMLLiteral> .
}
Test 0099: Preservation of white space in literals
Tests the preservation of white space in literals.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:example="http://www.example.org/">
   <head profile="http://www.w3.org/1999/xhtml/vocab">
      <title>Test 0099</title>
   </head>
   <body>
		<p about="http://www.cwi.nl/~steven/" property="example:likes">
    We put thirty spokes together and call it a wheel;
    But it is on the space where there is nothing that the usefulness of the wheel depends.
    We turn clay to make a vessel;
    But it is on the space where there is nothing that the usefulness of the vessel depends.
    We pierce doors and windows to make a house;
    And it is on these spaces where there is nothing that the usefulness of the house depends.
    Therefore just as we take advantage of what is, we should recognize the usefulness of what is not.

    Lao Tzu: Tao Te Ching</p>
	</body>
</html>
ASK WHERE {
<http://www.cwi.nl/~steven/> <http://www.example.org/likes> """
    We put thirty spokes together and call it a wheel;
    But it is on the space where there is nothing that the usefulness of the wheel depends.
    We turn clay to make a vessel;
    But it is on the space where there is nothing that the usefulness of the vessel depends.
    We pierce doors and windows to make a house;
    And it is on these spaces where there is nothing that the usefulness of the house depends.
    Therefore just as we take advantage of what is, we should recognize the usefulness of what is not.

    Lao Tzu: Tao Te Ching""" .
}
Test 0104: rdf:value
Tests rdf:value with blank nodes to give a value with a unit
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:example="http://www.example.org/">
  <head profile="http://www.w3.org/1999/xhtml/vocab">
	<title>Test 0104</title>
  </head>
  <body>
  	<p>
    	The word "interfenestration" has 
    	<span about="#interfenestration" rel="example:size">
            <span property="rdf:value">17</span>
            <span property="example:unit">character</span>s.
    	</span>
	</p>
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0104.xhtml#interfenestration> <http://www.example.org/size> _:a . 
 	_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "17" .
 	_:a <http://www.example.org/unit> "character" .
 }
Test 0106: chaining with empty value in inner @rel
Tests the behavior of triple generation in the case where the inner @rel is defined, but is blank, which halts chaining.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
	<title>Test 0106</title>
  </head>
  <body>
  	  <div about="" rel="dc:creator">
         <a rel="" href="manu.html">Manu</a> created this page.
      </div>
  </body>
</html>
ASK WHERE {
 <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0106.xhtml> <http://purl.org/dc/elements/1.1/creator>  ?a .
 optional {
   ?x ?y <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/manu.html> .
 }
 FILTER (isBlank(?a) && !BOUND(?x) && !BOUND(?y))
}
Test 0107: no garbage collecting bnodes
Checks to make sure that that while we shouldn't garbage collect bnodes no triples are generated.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://example.org/">
  <head>
	<title>Test 0107</title>
  </head>
  <body>
  	  <div rel="next"></div>
  </body>
</html>
# This test should result in a 'NO', i.e. no triples should be generated from the XHTML+RDFa input document.
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0107.xhtml> <http://www.w3.org/1999/xhtml/vocab#next> ?a .
 }
Test 0108: plain literal with datatype="" and xml:lang preservation
Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "" and preserves the xml:lang value. The text, with control characters and whitespace preserved, reads "Greek white space ".
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://example.org/">
  <head>
	<title>Test 0108</title>
  </head>
  <body>
    <p about="http://example.org/node" property="ex:property"
       datatype="" xml:lang="el">ελληνικό
άσπρο   διάστημα
</p>
  </body>
</html>
ASK WHERE {
 <http://example.org/node> <http://example.org/property> "ελληνικό\nάσπρο   διάστημα\n"@el .
 }
Test 0109: Tests to ensure @xml:base is ignored
Tests to make sure that @xml:base is ignored in XHTML+RDFa 1.0. The input test document is invalid XHTML.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/"
xml:base="http://example.org/invalid/">
   <head>
      <title>Test 0109</title>
   </head>
   <body>
   	  <!-- This a NOT a valid XHTML document (due to @xml:base) -->
      <div xml:base="http://example.org/invalid/">
         <p about="">This is <span property="dc:title">Test 0109</span>.</p>
      </div>
   </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0109.xhtml> <http://purl.org/dc/elements/1.1/title> "Test 0109" .
 }
Test 0110: bNode generated even though no nested @about exists
Tests to make sure that a bNode is generated even though no nested @about exists.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#">
  <head>
        <title>Test 0110</title>
  </head>
  <body>
    <div rel="xhv:next">
      <div rel="xhv:next" />
    </div>
  </body>
</html>
ASK WHERE {
 <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0110.xhtml> <http://www.w3.org/1999/xhtml/vocab#next> ?a .
 FILTER isBlank(?a)
}
Test 0111: two bNodes generated after three levels of nesting
Tests to make sure that two bNodes are generated after three levels of nesting and that the last div does not generate a triple.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#">
  <head>
    <title>Test 0111</title>
  </head>
  <body>
    <div rel="xhv:next">
      <div rel="xhv:next">
        <div rel="xhv:next" />
      </div>
    </div>
  </body>
</html>
ASK WHERE {
 <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0111.xhtml> <http://www.w3.org/1999/xhtml/vocab#next> ?a .
 ?a <http://www.w3.org/1999/xhtml/vocab#next> ?b .
  FILTER (isBlank(?a) && isBlank(?b) )
}
Test 0112: plain literal with datatype=""
Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "".
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://example.org/">
  <head>
	<title>Test 0112</title>
  </head>
  <body>
  	  <p>
      <span about="http://example.org/node" property="ex:property"
            datatype="">not an XML Literal,
whitespace     preserved
</span>
    </p>
  </body>
</html>
ASK WHERE {
	<http://example.org/node> <http://example.org/property> "not an XML Literal,\nwhitespace     preserved\n" .
 }
Test 0113: element with @property and no child nodes generates empty plain literal
Checks to make sure that an element with @property and no child nodes generates empty plain literal.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <head>
    <title>Test 0113</title>
  </head>
  <body>
    <span about="#a" property="dc:title"></span>
    <span about="#b" property="dc:title" />
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0113.xhtml#a> <http://purl.org/dc/elements/1.1/title> "" .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0113.xhtml#b> <http://purl.org/dc/elements/1.1/title> "" .
}
Test 0114: Relative URI dot-segment removal
Checks to make sure that a relative URI is resolved correctly according to RFC3986, section 5 (even when the relative URI is invalid, in this case).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:cc="http://creativecommons.org/ns#"
xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#"
xmlns:rdfatest="http://rdfa.info/vocabs/rdfa-test#">
  <head>
    <title>Test 0114</title>
  </head>
  <body>
    <div>
      <a rel="xhv:index" href="../../.././#">Test Suite</a>
      <a rel="xhv:next" href="0115.xhtml">Test Case 0115</a>
      <a rel="xhv:up" href="./">Test Case 0114</a>
      <a rel="cc:attributionURL" href="../../../../">RDFa Website</a>
      <a rel="rdfatest:cornerCase1" href=".">Corner Case #1</a>
      <a rel="rdfatest:cornerCase3" href="...">Corner Case #3</a>
      <a rel="rdfatest:cornerCase4" href="?foo=bar../baz">Corner Case #4</a>
      <a rel="rdfatest:cornerCase5" href="../..../../../.../.htaccess">Corner Case #5</a>
    </div>
  </body>
</html>
PREFIX xhv: <http://www.w3.org/1999/xhtml/vocab#>
PREFIX cc: <http://creativecommons.org/ns#>
PREFIX rdfatest: <http://rdfa.info/vocabs/rdfa-test#>
ASK WHERE {
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0114.xhtml>
    xhv:index <http://rdfa.info/test-suite/#>;
    xhv:next <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0115.xhtml>;
    xhv:up <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/>;
    cc:attributionURL <http://rdfa.info/>;
    rdfatest:cornerCase1 <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/>;
    rdfatest:cornerCase3 <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/...>;
    rdfatest:cornerCase4 <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0114.xhtml?foo=bar../baz>;
    rdfatest:cornerCase5 <http://rdfa.info/test-suite/test-cases/.../.htaccess>.
}
Test 0115: XML Entities must be supported by RDFa parser
Checks to make sure that XML Entities are treated properly by the RDFa parser.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://www.example.com/">
   <head>
     <title>Test 0115</title>
   </head>
   <body>
      <p>Description: XML entities in the RDFa content</p>
      <p>
        <span property="ex:entity1">&gt;</span>
        <span property="ex:entity2">Ben &amp; Co.</span>
        <span property="ex:entity3">&#x40;</span>
        <span property="ex:entity4">&#64;</span>
      </p>
   </body>
</html>
ASK WHERE {
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0115.xhtml>
   <http://www.example.com/entity1>
      ">" .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0115.xhtml>
   <http://www.example.com/entity2>
      "Ben & Co." .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0115.xhtml>
   <http://www.example.com/entity3>
      "@" .
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0115.xhtml>
   <http://www.example.com/entity4>
      "@" .
}
Test 0117: Fragment identifiers stripped from BASE
Checks to make sure that fragment identifiers are stripped from [base] when used to generate triples.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <head>
      <base href="http://www.example.org/tc117.xhtml#fragment"></base>
      <title property="dc:title">Test 0117</title>
   </head>
   <body>
      <p>
		<span property="dc:contributor">Mark Birbeck</span>
         added this triple test.
      </p>
   </body>
</html>
ASK WHERE {
<http://www.example.org/tc117.xhtml> <http://purl.org/dc/elements/1.1/title> "Test 0117" .
<http://www.example.org/tc117.xhtml> <http://purl.org/dc/elements/1.1/contributor> "Mark Birbeck" .
}
Test 0118: empty string "" is not equivalent to NULL - @about
Checks to make sure that the empty string "" isn't considered as NULL in languages such as Javascript when generating triples. This test sets the subject in a chain using @href and then immediately changes the subject using @about and generates a triple. A buggy parser may use the @href subject (http://example.org/javascript.html) instead of the one defined by @about.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <head>
      <title>Test 0118</title>
   </head>
   <body>
      <p>
         Check to see if parsers get confused when "" is
         interpreted as NULL in some chaining cases.
         <a href="http://example.org/ben.html"><span
            about="" property="dc:creator">Ben</span></a>
      </p>
   </body>

</html>
ASK WHERE {
<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0118.xhtml>
   <http://purl.org/dc/elements/1.1/creator>
      "Ben" .
}
Test 0119: "[prefix:]" CURIE format is valid
Checks to make sure that an RDFa processor expands CURIEs having only a prefix and a colon if a prefix is properly defined using xmlns.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:example="http://example.org/">
   <head>
      <title>Test 0119</title>
   </head>
   <body>
      <div>
         <p about="[example:]">
            The
            <span property="dc:title">Example Website</span>
            is used in many W3C tutorials.
         </p>
      </div>
   </body>

</html>
ASK WHERE {
<http://example.org/>
   <http://purl.org/dc/elements/1.1/title>
      "Example Website" .
}
Test 0120: "[:]" CURIE format is valid
Checks to make sure that an RDFa processor expands CURIEs having only a colon to the default prefix "http://www.w3.org/1999/test-cases/vocab#".
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:example="http://example.org/">
   <head>
      <title>Test 0120</title>
   </head>
   <body>
      <p about="[:]">
	         The
	         <span property="dc:title">The XHTML Vocabulary Document</span>
	         is the default prefix for XHTML+RDFa 1.0.
	      </p>
   </body>
</html>
ASK WHERE {
<http://www.w3.org/1999/xhtml/vocab#>
   <http://purl.org/dc/elements/1.1/title>
      "The XHTML Vocabulary Document" .
}
Test 0121: "[]" is a valid safe CURIE
Checks to make sure RDFa processors resolve the empty CURIE correctly. Note that this is not valid HTML due to recursive
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <head>
      <title>Test 0121</title>
   </head>
   <body>
    <div>
	<p about="http://example.org/">
		<span about="[]" property="dc:title">Test Case 0121</span>
		checks to make sure RDFa processors resolve the empty CURIE correctly.
		<p resource="[]">
			<span property="dc:contributor">Shane McCarron</span>
			contributed to this test.
		</p>
	</p>
	</div>
   </body>




</html>
ASK WHERE {
 <http://example.org/> <http://purl.org/dc/elements/1.1/title> "Test Case 0121" .
 <http://example.org/> <http://purl.org/dc/elements/1.1/contributor> "Shane McCarron" .
}
Test 0122: resource="[]" does not set the object
Checks to make sure that resource="[]" does not set the object since RDFa does not allow non-prefixed CURIEs.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Test 0122</title>
   </head>
   <body>
    <p about="http://example.org/section1.html">
         This section is contained below <span rel="up" resource="[]">the main site</span>.
      </p>
   </body>




</html>
# This is a negative test. No triples should be generated from the XHTML+RDFa input document.
ASK WHERE {
 <http://www.example.org/section1.html> <http://www.w3.org/1999/xhtml/vocab#up> ?obj .
}
Test 0126: Multiple @typeof values
Checks to ensure that multiple (white space separated) values in @typeof trigger multiple rdf:type triples.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dct="http://purl.org/dc/terms/"
xmlns:sioc="http://rdfs.org/sioc/ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
    <head>
      <title>Test 0126</title>
    </head>
    <body>
      <div about="http://www.example.org/#article" typeof="foaf:Document sioc:Post">
        <h1 property="dct:title">My article</h1>
      </div>
    </body>
</html>
ASK WHERE {
<http://www.example.org/#article> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document> .
<http://www.example.org/#article> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://rdfs.org/sioc/ns#Post> .
<http://www.example.org/#article> <http://purl.org/dc/terms/title> "My article" .
}
Test 0131: Whitespace alternatives in attributes
Ensures that multiple whitespace alternatives in attributes are allowed.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#">
<head>
  <title>Test</title>
  <link rel="xhv:next&#x20;xhv:prev&#x09;xhv:first&#x0a;xhv:last&#x0d;xhv:subsection" href="http://example.org/test.css" />
</head>
<body>
</body>
</html>
ASK WHERE {
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0131.xhtml> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0131.xhtml> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0131.xhtml> <http://www.w3.org/1999/xhtml/vocab#first> <http://example.org/test.css> .
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0131.xhtml> <http://www.w3.org/1999/xhtml/vocab#last> <http://example.org/test.css> .
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0131.xhtml> <http://www.w3.org/1999/xhtml/vocab#subsection> <http://example.org/test.css> .
}
Test 0134: Uppercase reserved words
Ensures that mixed-case reserved words generate triples.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test</title>
  <link rel="LICENSE" href="http://example.org/test.css" />
</head>
<body>
</body>
</html>
ASK WHERE {
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0134.xhtml> <http://www.w3.org/1999/xhtml/vocab#license> <http://example.org/test.css> .
}
Test 0140: Blank nodes identifiers are not allowed as predicates
The RDF data model does not allow blank node identifiers in predicates. This test ensures that RDFa processors do not emit invalid triples.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Blank-node as Predicate Test</title>
</head>
<body>
<p>Blank Nodes are not allowed to be predicate identifiers in RDF:</p>
<p property="_:invalid">Test</p>
</body>
</html>
# This is a negative test, no triples containing "Test" should be generated. 
ASK WHERE {
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0140.xhtml> ?p "Test".
}
Test 0147: xmlns prefix 'xmlzzz' (reserved)
Ensures that RDFa processors allow the prefix 'xmlzzz', even though it is a reserved prefix in XML.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test</title>
</head>
<body>
<p xmlns:xmlzzz="http://example.org/" property="xmlzzz:test">Test</p>
</body>
</html>
ASK WHERE {
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0147.xhtml> <http://example.org/test> "Test".
}
Test 0172: @datatype="" generates plain literal in presence of child nodes
Checks to ensure that when @datatype="" is used on an element that contains child nodes, that the literal that is generated is a plain literal.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://example.org/terms#">
<head> 
   <title>Test 0172</title> 
   <base href="http://example.org/"/> 
</head> 
<body xml:lang="en"> 
   <p property="ex:prop" datatype="">A <strong>plain literal</strong> with a lang tag.</p> 
</body>
</html>
ASK WHERE {
  <http://example.org/> <http://example.org/terms#prop> "A plain literal with a lang tag."@en .
}
Test 0173: @xml:lang="" clears language setting
Checks to ensure that when @xml:lang="" is used that any parent element language setting is cleared and a language-less literal is generated.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://example.org/terms#">
<head> 
   <title>Test 0173</title> 
   <base href="http://example.org/"/> 
</head> 
<body xml:lang="en"> 
   <p property="ex:prop" xml:lang="">Just a plain literal.</p> 
</body>
</html>
ASK WHERE {
  <http://example.org/> <http://example.org/terms#prop> "Just a plain literal." .
  <http://example.org/> <http://example.org/terms#prop> ?plain .
  FILTER(lang(?plain) = "")
}
Test 0174: Support single character prefix in CURIEs
Checks to ensure that the RDFa processor correctly processes single character prefixes when processing CURIEs.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="http://www.w3.org/2006/vcard/ns#">
<head> 
   <title>Test 0174</title> 
</head> 
<body> 
   <p>
      This test ensures that single-character prefixes are allowed. 
      My name is:
      <span about="http://example.org/jd" property="v:fn">John Doe</span> 
   </p>
</body>

</html>
ASK WHERE {
  <http://example.org/jd> <http://www.w3.org/2006/vcard/ns#fn> "John Doe" .
}
Test 0175: IRI for @property is allowed
Checks to make sure that a URI may be used as a @property value
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0175</title>
  </head>
  <body>
    <p about="_:gregg">My name is
      <em property="http://xmlns.com/foaf/0.1/name">Gregg Kellogg</em>.
    </p>
  </body>
</html>
ASK WHERE {
	?a <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
	FILTER isBlank(?a)
}
Test 0176: IRI for @rel and @rev is allowed
Checks to make sure that a URI may be used as @rel and @rev values
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
    <title>Test 0176</title>
  </head>
    <body>
    <div about="_:manu">
      Manu can be reached via
      <a rel="http://xmlns.com/foaf/0.1/mbox" href="mailto:manu.sporny@digitalbazaar.com">email</a>.
      <span rel="http://xmlns.com/foaf/0.1/knows" resource="_:gregg">He knows Gregg.</span>
      <span rev="http://xmlns.com/foaf/0.1/knows" resource="_:gregg">Who knows Manu.</span>
    </div>

    <div about="_:gregg">
      Gregg can be reached via
      <a rel="http://xmlns.com/foaf/0.1/mbox" href="mailto:gregg@kellogg-assoc.com">email</a>.
    </div>
  </body>


</html>
ASK WHERE {
	?a <http://xmlns.com/foaf/0.1/mbox> <mailto:manu.sporny@digitalbazaar.com> .
	?b <http://xmlns.com/foaf/0.1/mbox> <mailto:gregg@kellogg-assoc.com> .
	?a <http://xmlns.com/foaf/0.1/knows> ?b .
	?b <http://xmlns.com/foaf/0.1/knows> ?a .
	FILTER ( isBlank(?a) && isBlank(?b) )
}
Test 0177: Test @prefix
Checks to make sure @prefix with a single entry creates a URI mapping
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0177</title>
    <base href="http://example.org/"/>
  </head>
  <body>
    <div about ="#me" prefix="foaf: http://xmlns.com/foaf/0.1/" >
        <p property="foaf:name">Ivan Herman</p>
    </div>
  </body>
</html>
ASK WHERE {
  <http://example.org/#me> <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
}
Test 0178: Test @prefix with multiple mappings
Checks to make sure @prefix with multiple entires creates multiple URI mappings
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0178</title>
    <base href="http://example.org/"/>
  </head>
  <body>
    <div about ="#this" prefix="foaf: http://xmlns.com/foaf/0.1/ dc: http://purl.org/dc/terms/" typeof="dc:Agent">
        <p property="foaf:name">A particular agent</p>
    </div>
  </body>
</html>
ASK WHERE {
  <http://example.org/#this> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/dc/terms/Agent> .
  <http://example.org/#this> <http://xmlns.com/foaf/0.1/name> "A particular agent" .
}
Test 0179: Test @prefix vs @xmlns priority
Checks to make sure @prefix has a higher priority than @xmlns
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0179</title>
    <base href="http://example.org/"/>
  </head>
  <body>
    <!-- prefix has a higher priority than xmlns -->
  <div about ="#me" xmlns:foaf="http://www.example.com/wrong/foaf/uri" prefix="foaf: http://xmlns.com/foaf/0.1/" >
      <p property="foaf:name">Ivan Herman</p>
  </div>
  </body>
</html>
ASK WHERE {
  <http://example.org/#me> <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
}
Test 0180: Test @prefix with empty mapping
Checks to make sure @prefix with empty prefix does not create a mapping.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0180</title>
    <base href="http://example.org/"/>
  </head>
  <body>
  <div about ="#me" prefix=": http://xmlns.com/foaf/0.1/" >
      <p property=":name">Ivan Herman</p>
  </div>
  </body>
</html>
ASK WHERE {
  <http://example.org/#me> <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
}
Test 0181: Test default XHTML vocabulary
Checks Tests a CURIE with default namespace uses XHTML Vocabulary namespace.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0181</title>
  </head>
  <body>
  <div about ="http://www.example.org/software">
      <p rel=":license" resource="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">Ivan Herman</p>
  </div>
  </body>
</html>
ASK WHERE {
  <http://www.example.org/software>
    <http://www.w3.org/1999/xhtml/vocab#license>
      <http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231> .
}
Test 0182: Test prefix locality
Checks to be sure that prefixes are defined within the element hierarchy.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0182</title>
    <base href="http://example.org/"/>
  </head>
  <body>
    <div prefix="foaf: http://example.org/wrong/foaf/uri/ dc: http://purl.org/dc/terms/" >
      <div about ="#this" typeof="dc:Agent" prefix="foaf: http://xmlns.com/foaf/0.1/" >
        <p property="foaf:name">A particular agent</p>
      </div>
    </div>
  </body>
</html>
ASK WHERE {
  <http://example.org/#this> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/dc/terms/Agent> .
  <http://example.org/#this> <http://xmlns.com/foaf/0.1/name> "A particular agent"
}
Test 0183: Test @xmlns redefines @prefix
A new @xmlns definition should override a previous @prefix definition at this element.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0183</title>
  <base href="http://example.org/"/>
</head>
<body>
  <div prefix="foaf: http://example.org/wrong/foaf/uri/ dc: http://purl.org/dc/terms/" >
    <div about ="#this" typeof="dc:Agent" xmlns:foaf="http://xmlns.com/foaf/0.1/" >
      <p property="foaf:name">A particular agent</p>
    </div>
  </div>
</body>
</html>
ASK WHERE {
  <http://example.org/#this> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/dc/terms/Agent> .
  <http://example.org/#this> <http://xmlns.com/foaf/0.1/name> "A particular agent"
}
Test 0186: @vocab after subject declaration
Check that @vocab establishes a new default vocabulary when declared on the same element as a subject declaration via @about.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0186</title>
  <base href="http://example.org/"/>
</head>
<body>
  <div about ="#me" vocab="http://xmlns.com/foaf/0.1/" >
    <p property="name">Ivan Herman</p>
  </div>
</body>
</html>
ASK WHERE {
  <http://example.org/#me> <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
}
Test 0187: @vocab redefinition
Check that a more deeply nested @vocab attribute overloads a previous @vocab definition.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0187</title>
    <base href="http://example.org/"/>
  </head>
  <body>
    <div vocab="http://example.org/wrong/foaf/uri/">
      <div about ="#me" vocab="http://xmlns.com/foaf/0.1/" >
        <p property="name">Ivan Herman</p>
      </div>
    </div>
  </body>
</html>
ASK WHERE {
  <http://example.org/#me> <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
}
Test 0188: @vocab only affects predicates
Check that @vocab definitions on parent elements only affect predicate establishment.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0188</title>
    <base href="http://example.org/"/>
  </head>
  <body>
    <div vocab="http://xmlns.com/foaf/0.1/">
      <div about ="#me">
        <p property="name">Ivan Herman</p>
      </div>
    </div>
  </body>
</html>
ASK WHERE {
  <http://example.org/#me> <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
}
Test 0189: @vocab overrides default term
Check that @vocab changes a default term from XHV. Lookup checks default vocabulary before local term mappings.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0189</title>
  </head>
  <body>
    <div about ="http://www.example.org/software" vocab="http://www.example.org/vocab#">
      <p rel="license" resource="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">Ivan Herman</p>
    </div>
  </body>
</html>
ASK WHERE {
  <http://www.example.org/software>
    <http://www.example.org/vocab#license>
      <http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231> .
}
Test 0190: Test term case insensitivity
Check to ensure a mixed case term matches a case insensitive definition
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0190</title>
  </head>
  <body>
    <div about ="http://www.example.org/software">
      <p rel="liCeNse" resource="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">Ivan Herman</p>
    </div>
  </body>
</html>
ASK WHERE {
  <http://www.example.org/software>
    <http://www.w3.org/1999/xhtml/vocab#license>
      <http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231> .
}
Test 0196: Test process explicit XMLLiteral
XMLLiteral must be explicitly specified, otherwise a normal untyped literal is created
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://example.org/rdf/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<head>
	<title>Test 0196</title>
</head>
<body>
	<div about="http://www.example.org">
    <p property="ex:xmllit" datatype="rdf:XMLLiteral">This is an XMLLiteral</p>
    <p property="ex:plainlit">This is a <em>plain</em> literal</p>
</div>
</body>
</html>
# Some parsers may generate XML Literals that differ from the ones
# shown below. The only requirement for XML Literal tests is that
# the RDF graph that is generated is equivalent to the one expressed
# in the XHTML (preservation of whitespace and namespaces that are
# utilized in the XML Literal).

ASK WHERE {
 <http://www.example.org> <http://example.org/rdf/xmllit> "This is an XMLLiteral"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .
 <http://www.example.org> <http://example.org/rdf/plainlit> "This is a plain literal" .
}
Test 0197: Test TERMorCURIEorAbsURI requires an absolute URI
TERMorCURIEorAbsURI requires an absolute URI
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/terms/">
<head>
	<title>Test 0197</title>
	<base href="http://www.example.org/me" />
</head>
<body>
  <p about="" typeof="class/Person" property="pred/name">Gregg Kellogg</p>
  <p property="dc:language" datatype="pred/lang">Ruby</p>
  <p rel="pred/rel" resource="http://kellogg-assoc.com/">Kellogg Associates</p>
  <p rev="pred/rev" resource="http://github.org/gkellogg/rdf_context">Ruby Gem</p>
</body>
</html>
ASK WHERE {
  <http://www.example.org/me> <http://purl.org/dc/terms/language> "Ruby" .
}
Test 0198: datatype XMLLiteral with other embedded RDFa
Checks to ensure that when datatype is the default the parser generates triples for embedded content.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<head>
	<title>Test 0198</title>
	<base href="http://www.example.org/me" />
</head>
<body>
      <div id="mark" about="#mark" typeof="foaf:Person">
        <h2 property="foaf:name" datatype="rdf:XMLLiteral"><span 
property="foaf:firstName">Mark</span> <span 
property="foaf:surname">Birbeck</span></h2>
      </div>
 </body>
</html>
ASK WHERE {
 <http://www.example.org/me#mark> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
 <http://www.example.org/me#mark> <http://xmlns.com/foaf/0.1/name>
 "<span property=\"foaf:firstName\" xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:foaf=\"http://xmlns.com/foaf/0.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">Mark</span> <span property=\"foaf:surname\" xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:foaf=\"http://xmlns.com/foaf/0.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">Birbeck</span>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .
 <http://www.example.org/me#mark> <http://xmlns.com/foaf/0.1/firstName> "Mark" .
 <http://www.example.org/me#mark> <http://xmlns.com/foaf/0.1/surname> "Birbeck" .
}
Test 0201: Expressing an attribute using @property
Tests @property to establish the predicate; literal object is in the content of the element.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" width="12cm" height="4cm" viewBox="0 0 1200 400"
xmlns:dc="http://purl.org/dc/terms/"
xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny">
  <desc property="dc:description">A yellow rectangle with sharp corners.</desc>
  <!-- Show outline of canvas using 'rect' element -->
  <rect x="1" y="1" width="1198" height="398"
        fill="none" stroke="blue" stroke-width="2"/>
  <rect x="400" y="100" width="400" height="200"
        fill="yellow" stroke="navy" stroke-width="10"  />

</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0201.svg> <http://purl.org/dc/terms/description> "A yellow rectangle with sharp corners." .
}
Test 0202: Tests to ensure @xml:base used in SVG
Tests to make sure that @xml:base is used in SVG+RDFa.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" width="12cm" height="4cm" viewBox="0 0 1200 400"
xml:base="http://example.com/"
xmlns:dc="http://purl.org/dc/terms/"
xmlns="http://www.w3.org/2000/svg">
     version="1.2"
     baseProfile="tiny"
  <desc property="dc:description">A yellow rectangle with sharp corners.</desc>
  <!-- Show outline of canvas using 'rect' element -->
  <rect x="1" y="1" width="1198" height="398"
        fill="none" stroke="blue" stroke-width="2"/>
  <rect x="400" y="100" width="400" height="200"
        fill="yellow" stroke="navy" stroke-width="10"  />
</html>
ASK WHERE {
	<http://example.com/> <http://purl.org/dc/terms/description> "A yellow rectangle with sharp corners." .
}
Test 0203: Tests to ensure @xml:base used in non-root elements in SVG
Tests to make sure that @xml:base is used in non-root elements in SVG+RDFa.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" width="12cm" height="4cm" viewBox="0 0 1200 400"
xml:base="http://example.com/not-this-one/"
xmlns:dc="http://purl.org/dc/terms/"
xmlns="http://www.w3.org/2000/svg">
     version="1.2"
     baseProfile="tiny"
  <desc about="" xml:base="http://example.com/" property="dc:description">A yellow rectangle with sharp corners.</desc>
  <!-- Show outline of canvas using 'rect' element -->
  <rect x="1" y="1" width="1198" height="398"
        fill="none" stroke="blue" stroke-width="2"/>
  <rect x="400" y="100" width="400" height="200"
        fill="yellow" stroke="navy" stroke-width="10"  />
</html>
ASK WHERE {
	<http://example.com/> <http://purl.org/dc/terms/description> "A yellow rectangle with sharp corners." .
}
Test 0206: Usage of Initial Context
Tests whether the default RDFa 1.1 context (which contains prefix definitions, among others, to the Semantic Web Standard vocabularies) is properly handled.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <title>Default context test 0206</title>
</head>
<body>
	<p about ="xsd:maxExclusive" rel="rdf:type" resource="owl:DatatypeProperty">
	    An OWL Axiom: "xsd:maxExclusive" is a Datatype Property in OWL.
	</p>
</body>

</html>
ASK WHERE {
	<http://www.w3.org/2001/XMLSchema#maxExclusive> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
}
Test 0207: Vevent using @typeof
Tests Vevent using @typeof (inlc. dtstart, dtend, etc.)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:cal="http://www.w3.org/2002/12/cal/icaltzd#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
<head>
   <title>Test 0207</title>    
</head>
   <body>
   <p about="#event1" typeof="cal:Vevent">
       <b property="cal:summary">Weekend off in Iona</b>: 
       <span property="cal:dtstart" content="2006-10-21" datatype="xsd:date">Oct 21st</span>
       to <span property="cal:dtend" content="2006-10-23"  datatype="xsd:date">Oct 23rd</span>.
       See <a rel="cal:url" href="http://freetime.example.org/">FreeTime.Example.org</a> for
       info on <span property="cal:location">Iona, UK</span>.
   </p>
</body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0207.xhtml#event1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Vevent> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0207.xhtml#event1> <http://www.w3.org/2002/12/cal/icaltzd#summary> "Weekend off in Iona" .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0207.xhtml#event1> <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "2006-10-21"^^<http://www.w3.org/2001/XMLSchema#date> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0207.xhtml#event1> <http://www.w3.org/2002/12/cal/icaltzd#dtend> "2006-10-23"^^<http://www.w3.org/2001/XMLSchema#date> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0207.xhtml#event1> <http://www.w3.org/2002/12/cal/icaltzd#url> <http://freetime.example.org/> .
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0207.xhtml#event1> <http://www.w3.org/2002/12/cal/icaltzd#location> "Iona, UK" .
}
Test 0213: Datatype generation for a literal with XML content, version 1.1
In RDFa 1.1, even if a literal contains XML elements, and no explicit datatype is set, the result is plain literal
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" prefix="dc: http://purl.org/dc/elements/1.1/">
  <head>
	<title>Test 0213</title>
  </head>
  <body>
    <!-- In RDFa 1.1, by default a plain literal is generated even if it contains XML elements -->
  	<div about="http://www.example.org/">
      <h2 property="dc:title">E = mc<sup>2</sup>: The Most Urgent Problem of Our Time</h2>
	</div>
  </body>

</html>
ASK WHERE {
  <http://www.example.org/> <http://purl.org/dc/elements/1.1/title> "E = mc2: The Most Urgent Problem of Our Time" .
}
Test 0214: Root element has implicit @about=""
All documents have an implicit @about=""
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" typeof="foaf:Document">
<head>
   <title property="dc:title">Test 0214</title>
</head>
<body>
   <p>This document has a title.</p>
</body>
</html>
ASK WHERE {
    <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0214.xhtml> a <http://xmlns.com/foaf/0.1/Document>;
        <http://purl.org/dc/terms/title> "Test 0214" .
}
Test 0216: Proper character encoding detection in spite of large headers
Character encoding should work even in view of a large set of characters as attributes in the header, ie, when content sniffing may not work to establish encoding.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" prefix = "
air: http://www.daml.org/2001/10/html/airport-ont#
bio: http://vocab.org/bio/0.1/
contact: http://www.w3.org/2000/10/swap/pim/contact#
dc: http://purl.org/dc/terms/
foaf: http://xmlns.com/foaf/0.1/
ical: http://www.w3.org/2002/12/cal/icaltzd#
owl: http://www.w3.org/2002/07/owl#
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs: http://www.w3.org/2000/01/rdf-schema#
rel: http://vocab.org/relationship/
openid: http://xmlns.openid.net/auth#
rss: http://web.resource.org/rss/1.0/
sioc: http://rdfs.org/sioc/ns#
xsd: http://www.w3.org/2001/XMLSchema#
google: http://rdf.data-vocabulary.org/#
rsa: http://www.w3.org/ns/auth/rsa#
cert: http://www.w3.org/ns/auth/cert#
wot: http://xmlns.com/wot/0.1/
">
<head>
   <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
</head>
<body>
      <!-- Tests whether the Unicode (UTF-8 encoded) characters are properly handled even with a large set of properties
	  in the html element, ie, when the content sniffing to find out the character encoding may not work -->
	  <p about="http://www.ivan-herman.net/foaf#me" property="foaf:name">Iván</p>
</body>
</html>
ASK WHERE {
    <http://www.ivan-herman.net/foaf#me> <http://xmlns.com/foaf/0.1/name> "Iván" .
}
Test 0217: @vocab causes rdfa:usesVocabulary triple to be added
When encountering @vocab, a processor generates a triple with the base URI, rdfa:usesVocabulary and the IRI of the added vocabulary.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0217</title>
  <base href="http://example.org/"/>
</head>
<body>
  <div about="#me" vocab="http://xmlns.com/foaf/0.1/" >
    <p property="name">Gregg Kellogg</p>
  </div>
</body>
</html>
ASK WHERE {
  <http://example.org/#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
  <http://example.org/> <http://www.w3.org/ns/rdfa#usesVocabulary> <http://xmlns.com/foaf/0.1/> .
}
Test 0218: @inlist to create empty list
@inlist on @rel with no incomplete triples creates an empty list.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0218</title>
</head>
<body>
  <div about ="">
    <p rel="rdf:value" inlist=""/>
  </div>
</body>
</html>
ASK WHERE {
  ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
}
Test 0219: @inlist with literal
@inlist with @property creates a list having a literal as a single element.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0219</title>
</head>
<body>
  <div about="">
    <p property="rdf:value" inlist="">Foo</p>
  </div>
</body>
</html>
ASK WHERE {
  ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> ("Foo") .
}
Test 0220: @inlist with IRI
@inlist with @rel and @href creates a list having an IRI as a single element.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0220</title>
</head>
<body>
  <div about="">
    <a rel="rdf:value" inlist="" href="foo">Foo</a>
  </div>
</body>
</html>
BASE <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0220.xhtml>
ASK WHERE {
  <> <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> (<foo>) .
}
Test 0221: @inlist with hetrogenious membership
@inlist with @rel and @property creates a list with both IRI and Literal elements.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0221</title>
</head>
<body>
  <div about="">
    <p property="rdf:value" inlist="">Foo</p>
    <a rel="rdf:value" inlist="" href="foo">Foo</a>
  </div>
</body>
</html>
BASE <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0221.xhtml>
ASK WHERE {
  <> <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> ("Foo" <foo>) .
}
Test 0222: @inlist with multi-level elements
@inlist with @property at different levels of descendence creates single list.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0222</title>
</head>
<body>
  <div about="">
    <p property="rdf:value" inlist="">Foo</p>
    <strong><p property="rdf:value" inlist="">Bar</p></strong>
  </div>
</body>
</html>
BASE <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0222.xhtml>
ASK WHERE {
  <> <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> ("Foo" "Bar") .
}
Test 0223: @inlist with non-list property
Use of predicate with @inlist and without @inlist creates both list and non-list triples.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0223</title>
</head>
<body>
  <div about="">
    <p property="rdf:value" inlist="">Foo</p>
    <strong><p property="rdf:value" inlist="">Bar</p></strong>
    <p property="rdf:value">Baz</p>
  </div>
</body>
</html>
BASE <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0223.xhtml>
ASK WHERE {
  <> <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> ("Foo" "Bar"), "Baz" .
}
Test 0224: @inlist hanging @rel
Use of @rel and @inlist with decendent IRI elements creates list
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0224</title>
</head>
<body>
  <div about="">
    <ol rel="rdf:value" inlist="">
      <li><a href="foo">Foo</a></li>
      <li><a href="bar">Bar</a></li>
    </ol>
  </div>
</body>
</html>
BASE <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0224.xhtml>
ASK WHERE {
  <> <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> (<foo> <bar>) .
}
Test 0225: @inlist on different elements with same subject
@inlist with same property and subject on different elements creates multiple lists
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0225</title>
</head>
<body>
  <div about="foo">
    <p property="rdf:value" inlist="">Foo</p>
  </div>
  <div about="foo">
    <p property="rdf:value" inlist="">Bar</p>
  </div>
</body>
</html>
BASE <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0225.xhtml>
ASK WHERE {
  <foo> <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> ("Foo"), ("Bar") .
}
Test 0226: confusion between multiple implicit collections (resource)
Use of @inlist with implicit subject uses different list
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0226</title>
</head>
<body>
  <div about="">
    <p property="rdf:value" inlist="">Foo</p>
    <span rel="rdf:inlist" resource="res">
      <p property="rdf:value" inlist="">Bar</p>
    </span>
  </div>
</body>
</html>
BASE <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0226.xhtml>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
ASK WHERE {
  <> rdf:value ("Foo");
    rdf:inlist <res> .
  <res> rdf:value ("Bar") .
}
Test 0227: confusion between multiple implicit collections (about)
Use of @inlist with implicit subject uses different list
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0227</title>
</head>
<body>
  <div about="">
    <p property="rdf:value" inlist="">Foo</p>
    <span rel="rdf:inlist">
      <p about="res" property="rdf:value" inlist="">Bar</p>
    </span>
  </div>
</body>
</html>
BASE <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0227.xhtml>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
ASK WHERE {
  <> rdf:value ("Foo");
    rdf:inlist <res> .
  <res> rdf:value ("Bar") .
}
Test 0228: 1.1 alternate for test 0040: @rev - @src/@resource test
@src is a lower priority than @resource
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
		<title>Test 0228</title>
		<!-- Based on 1.1 semantics for 0040 -->
  </head>
  <body>
  	<div>
     <img src="http://sw-app.org/img/mic_2007_01.jpg"
           rev="xhv:alternate"
           resource="http://sw-app.org/img/mic_2006_03.jpg"
           alt="A photo depicting Michael" />	
  	</div>
  </body>
</html>
ASK WHERE {
	<http://sw-app.org/img/mic_2006_03.jpg>  <http://www.w3.org/1999/xhtml/vocab#alternate> <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0228.xhtml> .
}
Test 0229: img[@src] test with omitted @about
Tests if a @src (in img element) does not set the URIref object (with omitted @about) -- from 0042
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0042</title>    
  </head>
  <body>
  	<div>
  	  <img 	rel="foaf:img"
  	   		src="http://sw-app.org/img/mic_2007_01.jpg" 
  	   		alt="A photo depicting Michael" />
  	</div>
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0229.xhtml> <http://xmlns.com/foaf/0.1/img> <http://sw-app.org/img/mic_2007_01.jpg> .
}
Test 0230: @src does not set a new subject (@rel/@href)
Tests to ensure that @src does not set a new subject (oposite of 0090 for 1.0).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0230</title>
</head>
<body>
  <div>
    <img
      src="http://example.org/example.png"  
      rel="license"
      href="http://creativecommons.org/licenses/by-nc-sa/2.0/"
      alt="example image" />
  </div>
</body>
</html>
ASK WHERE {
 <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0230.xhtml> <http://www.w3.org/1999/xhtml/vocab#license> <http://creativecommons.org/licenses/by-nc-sa/2.0/> .
}
Test 0231: Set image license information
Tests new behavior of @src in 1.1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0231</title>
</head>
<body>
  <div about="http://creativecommons.org/licenses/by-nc-sa/2.0/" rev="license">
    <img src="http://example.org/example.png" alt="example image" />
  </div>
</body>
</html>
ASK WHERE {
 <http://example.org/example.png> <http://www.w3.org/1999/xhtml/vocab#license> <http://creativecommons.org/licenses/by-nc-sa/2.0/> .
}
Test 0232: @typeof with @rel present, no @href, @resource, or @about (1.1 behavior of 0046);
Tests @typeof with @rel present, no @href, @resource, or @about creates a BNode object
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0232</title>    
  </head>
  <body>
  	<div rel="foaf:maker" typeof="foaf:Person">
	    <p property="foaf:name">John Doe</p>
   	</div>
  </body>
</html>
BASE <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0232.xhtml>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

ASK WHERE {
  <> foaf:maker ?a .
  ?a a foaf:Person;
     foaf:name "John Doe" .
  FILTER ( isBlank(?a) )
}
Test 0233: @typeof with @rel and @resource present, no @about (1.1 behavior of 0047)
Tests @typeof with @rel and @resource present, no @about adds type to object
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <head>
		<title>Test 0233</title>    
  </head>
  <body>
  	<div rel="foaf:maker" typeof="foaf:Person" resource="http://www.example.org/#me">
	    <p property="foaf:name">John Doe</p>
   	</div>
  </body>
</html>
BASE <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0233.xhtml>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

ASK WHERE {
  <> foaf:maker <http://www.example.org/#me> .
  <http://www.example.org/#me> a foaf:Person;
     foaf:name "John Doe" .
}
Test 0234: All defined HTML link relation values
Tests to ensure that all defined linked relations expand
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Test 0234</title>
   </head>
   <body>
      <p>
         <a rel="describedby" href="http://example.org/describedby">describedby</a>
         <a rel="license" href="http://example.org/license">license</a>
         <a rel="role" href="http://example.org/role">role</a>
      </p>
   </body>
</html>
PREFIX xhv: <http://www.w3.org/1999/xhtml/vocab#>
PREFIX powder: <http://www.w3.org/2007/05/powder-s#>
PREFIX ex: <http://example.org/>
ASK WHERE {
  ?s powder:describedby ex:describedby;
     xhv:license ex:license;
     xhv:role ex:role
}
Test 0235: rdfagraph='processor' does not generate standard triples
Setting rdfagraph query parameter to 'processor' does not output standard triples
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0235</title>
  </head>
  <body>
    <p>
      The <span property="dc:title">rdfagraph</span> should not generate triples when
      looking only at the processor graph.
    </p>
  </body>
</html>
PREFIX dc: <http://purl.org/dc/terms/>
ASK WHERE {
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5> dc:title "rdfagraph" .
}
Test 0236: rdfagraph='processor' with a markup error generates rdfa:Error
Setting rdfagraph query parameter to 'processor' generates an rdf:Error
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0236</title>
  </head>
  <body which is not closed should generate a processor error</html>
PREFIX rdfa: <http://www.w3.org/ns/rdfa#>
ASK WHERE { ?s a rdfa:Error }
Test 0237: rdfagraph='processor' with invalid SafeCURIE generates rdfa:Warning
Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an invalid prefix.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0237</title>
</head>
<body prefix="$malformed http://example.com"
     property="rdf:value"
     resource="[$malformed:curie]">
  Malformed Prefix
</body>
</html>
PREFIX rdfa: <http://www.w3.org/ns/rdfa#>
ASK WHERE { ?s a rdfa:Warning }
Test 0238: rdfagraph='processor' with missing Term definition generates rdfa:Warning
Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a missing Term definition.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0238</title>
</head>
<body property="undefined_term">
  Undefined Term
</body>
</html>
PREFIX rdfa: <http://www.w3.org/ns/rdfa#>
ASK WHERE { ?s a rdfa:Warning }
Test 0239: rdfagraph='processor' with undefined prefix generates rdfa:Warning
Setting rdfagraph query parameter to 'processor' generates an rdf:Warning when given a SafeCURIE with an undefined prefix.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0239</title>
</head>
<body property="rdf:value"
     resource="[undefined:curie]">
  Undefined Prefix
</body>
</html>
PREFIX rdfa: <http://www.w3.org/ns/rdfa#>
ASK WHERE { ?s a rdfa:Warning }
Test 0240: vocab_expansion='true' expands sub-property
A property having an rdfs:subPropertyOf relationship defined in an in-use vocabulary causes triples to be added to the referenced property.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0240</title>
</head>
<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
  Using the property <code property="subProp" resource="rdfatest:subProp">subProp</code>
  should cause a triple with <code>baseProp</code> to be added.
</body>
</html>
PREFIX rdfatest: <http://rdfa.info/vocabs/rdfa-test#>
ASK WHERE {
  ?s rdfatest:subProp rdfatest:subProp;
     rdfatest:baseProp rdfatest:subProp
}
Test 0241: vocab_expansion='true' expands equivalent-property
A property having an owl:equivalentProperty relationship defined in an in-use vocabulary causes triples to be added to the referenced property.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0241</title>
</head>
<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
  Using the property <code property="eqProp" resource="rdfatest:eqProp">eqProp</code>
  should cause a triple with <code>baseProp</code> to be added.
</body>
</html>
PREFIX rdfatest: <http://rdfa.info/vocabs/rdfa-test#>
ASK WHERE {
  ?s rdfatest:eqProp rdfatest:eqProp;
     rdfatest:baseProp rdfatest:eqProp
}
Test 0242: vocab_expansion='true' expands referenced equivalent-property
A property which is the target of another property having an owl:equivalentProperty relationship defined in an in-use vocabulary causes triples to be added to the defining property.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0242</title>
</head>
<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
  Using the property <code property="baseProp" resource="rdfatest:eqProp">eqProp</code>
  should cause a triple with <code>eqProp</code> to be added.
</body>
</html>
PREFIX rdfatest: <http://rdfa.info/vocabs/rdfa-test#>
ASK WHERE {
  ?s rdfatest:eqProp rdfatest:eqProp;
     rdfatest:baseProp rdfatest:eqProp
}
Test 0243: vocab_expansion='true' expands sub-class
A property having an rdfs:subClassOf relationship defined in an in-use vocabulary causes triples to be added to the referenced class.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0243</title>
</head>
<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
  Using the type <code about="_:a" typeof="SubClass">SubClass</code>
  should cause a triple with <code>BaseClass</code> to be added.
</body>
</html>
PREFIX rdfatest: <http://rdfa.info/vocabs/rdfa-test#>
ASK WHERE {
  ?s a rdfatest:SubClass, rdfatest:BaseClass
}
Test 0244: vocab_expansion='true' expands equivalent-class
A class having an owl:equivalentClass relationship defined in an in-use vocabulary causes triples to be added to the referenced class.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0244</title>
</head>
<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
  Using the type <code about="_:a" typeof="EqClass">EqClass</code>
  should cause a triple with <code>BaseClass</code> to be added.
</body>
</html>
PREFIX rdfatest: <http://rdfa.info/vocabs/rdfa-test#>
ASK WHERE {
  ?s a rdfatest:EqClass, rdfatest:BaseClass
}
Test 0245: vocab_expansion='true' expands referenced equivalent-class
A class which is the target of another class having an owl:equivalentClass relationship defined in an in-use vocabulary causes triples to be added to the defining class.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0245</title>
</head>
<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
  Using the type <code about="_:a" typeof="BaseClass">BaseClass</code>
  should cause a triple with <code>EqClass</code> to be added.
</body>
</html>
PREFIX rdfatest: <http://rdfa.info/vocabs/rdfa-test#>
ASK WHERE {
  ?s a rdfatest:EqClass, rdfatest:BaseClass
}
Test 0246: hanging @rel creates multiple triples, @typeof permutation; RDFa 1.1 version
Tests if hanging @rel creates multiple triples with @typeof permutation
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test 0246</title>
  </head>
  <body prefix="foaf: http://xmlns.com/foaf/0.1/">
    <div about="http://www.example.org/#ben" rel="foaf:knows">
      <p typeof="foaf:Person"><span property="foaf:name">Mark Birbeck</span></p>
      <p typeof="foaf:Person"><span property="foaf:name">Ivan Herman</span></p>
    </div>
  </body>
</html>
ASK WHERE {
	<http://www.example.org/#ben> <http://xmlns.com/foaf/0.1/knows> ?a .
	<http://www.example.org/#ben> <http://xmlns.com/foaf/0.1/knows> ?b .
	?a <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
	?a <http://xmlns.com/foaf/0.1/name> "Mark Birbeck" .
	?b <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>	<http://xmlns.com/foaf/0.1/Person> .
	?b <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
	FILTER ( isBlank(?a) && isBlank(?b) )
}
Test 0247: Multiple incomplete triples, RDFa 1.1version
Tests multiple ways of handling incomplete triples; the first two triples should use the same bnode as subject ('merged'). The third should have a separate bNode.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
		<title>Test 0247</title>    
  </head>
  <body prefix="foaf: http://xmlns.com/foaf/0.1/">    
	<div about ="http://www.example.org/#somebody" rel="foaf:knows">
	    <p property="foaf:name">Ivan Herman</p>
		<p rel="foaf:mailbox" resource="mailto:ivan@w3.org">mailto:ivan@w3.org</p>
		<p typeof="foaf:Person"><span property="foaf:name">Mark Birbeck</span></p>
	</div>
  </body>
</html>
ASK WHERE {
    <http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows>
	    [ <http://xmlns.com/foaf/0.1/name> "Ivan Herman"; 
	      <http://xmlns.com/foaf/0.1/mailbox> <mailto:ivan@w3.org> ],
		[ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person>;
		  <http://xmlns.com/foaf/0.1/name> "Mark Birbeck" ] .
}
Test 0248: multiple ways of handling incomplete triples (with @rev); RDFa 1.1 version
Tests multiple ways of handling incomplete triples, this time with @rev
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
		<title>Test 0248</title>    
  </head>
  <body prefix="foaf: http://xmlns.com/foaf/0.1/">
	<div about ="http://www.example.org/#somebody" rev="foaf:knows">
	    <p property="foaf:name">Ivan Herman</p>
		<p rel="foaf:mailbox" resource="mailto:ivan@w3.org">mailto:ivan@w3.org</p>
		<p typeof="foaf:Person"><span property="foaf:name">Mark Birbeck</span></p>
	</div>
  </body>
</html>
ASK WHERE {
 ?a <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#somebody> .
 ?a <http://xmlns.com/foaf/0.1/mailbox> <mailto:ivan@w3.org> .
 ?a <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
 ?b <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
 ?b <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#somebody> .
 ?b <http://xmlns.com/foaf/0.1/name> "Mark Birbeck" .
 FILTER ( isBlank(?a) && isBlank(?b) )
}
Test 0249: multiple ways of handling incomplete triples (with @rel and @rev); RDFa 1.1 version
Tests multiple ways of handling incomplete triples, this time with both @rel and @rev
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
		<title>Test 0249</title>    
  </head>
  <body prefix="foaf: http://xmlns.com/foaf/0.1/">
	<div about ="http://www.example.org/#somebody" rev="foaf:knows" rel="foaf:knows">
	    <p property="foaf:name">Ivan Herman</p>
		<p rel="foaf:mailbox" resource="mailto:ivan@w3.org">mailto:ivan@w3.org</p>
		<p typeof="foaf:Person"><span property="foaf:name">Mark Birbeck</span></p>
	</div>
  </body>
</html>
ASK WHERE {
 <http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows> ?a .
 <http://www.example.org/#somebody> <http://xmlns.com/foaf/0.1/knows> ?b .
 ?a <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#somebody> .
 ?a <http://xmlns.com/foaf/0.1/mailbox> <mailto:ivan@w3.org> .
 ?a <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
 ?b <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
 ?b <http://xmlns.com/foaf/0.1/knows> <http://www.example.org/#somebody> .
 ?b <http://xmlns.com/foaf/0.1/name> "Mark Birbeck" .	 
 FILTER ( isBlank(?a) && isBlank(?b) )
}
Test 0250: Checking the right behaviour of @typeof with @about, in presence of @property
Tests that @typeof is clearly bound to @about, and @property therefore creates a Literal object
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
		<title>Test 0250</title>    
  </head>
  <body prefix="foaf: http://xmlns.com/foaf/0.1/">
	<p about ="http://www.ivan-herman.net/foaf#me" typeof="foaf:Person" property="foaf:name">Ivan Herman</p>
  </body>
</html>
ASK WHERE {
 <http://www.ivan-herman.net/foaf#me> a <http://xmlns.com/foaf/0.1/Person>;
    <http://xmlns.com/foaf/0.1/name> "Ivan Herman" .
}
Test 0251: lang
Tests lang
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" prefix="ex: http://example.org/">
  <head about="">
	<title>Test 251</title>
  	<meta about="http://example.org/node" property="ex:property" lang="fr" content="chat" />
  </head>
  <body>
  	<p></p>
  </body>
</html>
ASK WHERE {
	<http://example.org/node> <http://example.org/property> "chat"@fr .
}
Test 0252: lang inheritance
Tests lang inheritance
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" prefix="ex: http://example.org/">
  <head about="" lang="fr">
  	<title lang="en">Test 0252</title>
  	<meta about="http://example.org/node" property="ex:property" content="chat" />
  </head>
  <body>
  	<p></p>
  </body>
</html>
ASK WHERE {
	<http://example.org/node> <http://example.org/property> "chat"@fr .
}
Test 0253: plain literal with datatype="" and lang preservation
Checks to make sure that the RDFa parser emits a plain literal when the datatype is specified as "" and preserves the xml:lang value. The text, with control characters and whitespace preserved, reads "Greek white space ".
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" prefix="ex: http://example.org/">
  <head>
	<title>Test 0108</title>
  </head>
  <body>
    <p about="http://example.org/node" property="ex:property"
       datatype="" lang="el">ελληνικό
άσπρο   διάστημα
</p>
  </body>
</html>
ASK WHERE {
 <http://example.org/node> <http://example.org/property> "ελληνικό\nάσπρο   διάστημα\n"@el .
 }
Test 0254: @datatype="" generates plain literal in presence of child nodes
Checks to ensure that when @datatype="" is used on an element that contains child nodes, that the literal that is generated is a plain literal.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" prefix="ex: http://example.org/terms#">
<head> 
   <title>Test 0254</title> 
   <base href="http://example.org/"/> 
</head> 
<body lang="en"> 
   <p property="ex:prop" datatype="">A <strong>plain literal</strong> with a lang tag.</p> 
</body>
</html>
ASK WHERE {
  <http://example.org/> <http://example.org/terms#prop> "A plain literal with a lang tag."@en .
}
Test 0255: lang="" clears language setting
Checks to ensure that when lang="" is used that any parent element language setting is cleared and a language-less literal is generated.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" prefix="ex: http://example.org/terms#">
<head> 
   <title>Test 0255</title> 
   <base href="http://example.org/"/> 
</head> 
<body lang="en"> 
   <p property="ex:prop" lang="">Just a plain literal.</p> 
</body>
</html>
ASK WHERE {
  <http://example.org/> <http://example.org/terms#prop> "Just a plain literal." .
  <http://example.org/> <http://example.org/terms#prop> ?plain .
  FILTER(lang(?plain) = "")
}
Test 0256: lang and xml:lang on the same element
Tests @xml:lang and @lang on the same element with different values; @xml:lang should prevail.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" prefix="ex: http://example.org/">
  <head about="">
	<title>Test 0256</title>
  	<meta about="http://example.org/node" property="ex:property" xml:lang="fr" lang="hu" content="chat" />
  </head>
  <body>
  	<p></p>
  </body>
</html>
ASK WHERE {
	<http://example.org/node> <http://example.org/property> "chat"@fr .
}
Test 0257: element with @property and no child nodes generates empty plain literal (HTML5 version of 0113)
Checks to make sure that an element with @property and no child nodes generates empty plain literal.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" prefix="dc: http://purl.org/dc/elements/1.1/">
  <head>
    <title>Test 0257</title>
  </head>
  <body>
    <span about="#a" property="dc:title"></span>
  </body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0257.xhtml#a> <http://purl.org/dc/elements/1.1/title> "" .
}
Test 0258: The underscore character is not allowed in xmlns
Ensures that a prefix cannot start with an underscore character when specified using xmlns or prefix.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Undescore Prefix is Ignored Test</title>
</head>
<body>
<p>Ensure that the "_" prefix is ignored.</p>
<p xmlns:_="http://example.org/"
   prefix="_: http://example.org/" 
   xmlns:earl="http://www.w3.org/ns/earl#" 
   rel="earl:testcase" resource="_:test">Test</p>
</body>
</html>
# This is a negative test, the triple shown below should not be generated.
PREFIX earl: <http://www.w3.org/ns/earl#>
PREFIX ex: <http://example.org/>
ASK WHERE {
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0258.xhtml> ?p ex:test .
}
Test 0259: XML+RDFa Initial Context
All processors must load the RDFa Core Initial Context.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0259</title>
</head>
<body>
  <div>
    Vocabulary Prefixes
    <span property="grddl:">GRDDL</span>
    <span property="ma:">MA</span>
    <span property="owl:">OWL</span>
    <span property="rdf:">RDF</span>
    <span property="rdfa:">RDFa</span>
    <span property="rdfs:">RDFS</span>
    <span property="rif:">RIF</span>
    <span property="skos:">SKOS</span>
    <span property="skosxl:">SKOS-XL</span>
    <span property="wdr:">WDR</span>
    <span property="void:">VOID</span>
    <span property="wdrs:">WDRS</span>
    <span property="xhv:">XHV</span>
    <span property="xml:">XML</span>
    <span property="xsd:">XSD</span>
  </div>
  <div>
    Widely Used prefixes
    <span property="cc:">CC</span>
    <span property="ctag:">CTAG</span>
    <span property="dc:">DC</span>
    <span property="dcterms:">DCTERMS</span>
    <span property="foaf:">FOAF</span>
    <span property="gr:">GR</span>
    <span property="ical:">ICAL</span>
    <span property="og:">OG</span>
    <span property="rev:">REV</span>
    <span property="sioc:">SIOC</span>
    <span property="v:">V</span>
    <span property="vcard:">VCARD</span>
    <span property="schema:">Schema</span>
  </div>
  <div>
    Vocabulary Terms
    <span property="describedby">DescribedBy</span>
    <span property="license">License</span>
    <span property="role">Role</span>
  </div>
</body></html>
ASK WHERE {
  ?s <http://www.w3.org/2003/g/data-view#> "GRDDL";
    <http://www.w3.org/ns/ma-ont#> "MA";
    <http://www.w3.org/2002/07/owl#> "OWL";
    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "RDF";
    <http://www.w3.org/ns/rdfa#> "RDFa";
    <http://www.w3.org/2000/01/rdf-schema#> "RDFS";
    <http://www.w3.org/2007/rif#> "RIF";
    <http://www.w3.org/2004/02/skos/core#> "SKOS";
    <http://www.w3.org/2008/05/skos-xl#> "SKOS-XL";
    <http://www.w3.org/2007/05/powder#> "WDR";
    <http://rdfs.org/ns/void#> "VOID";
    <http://www.w3.org/2007/05/powder-s#> "WDRS";
    <http://www.w3.org/1999/xhtml/vocab#> "XHV";
    <http://www.w3.org/XML/1998/namespace> "XML";
    <http://www.w3.org/2001/XMLSchema#> "XSD";

    # Widely Used prefixes
    <http://creativecommons.org/ns#> "CC";
    <http://commontag.org/ns#> "CTAG";
    <http://purl.org/dc/terms/> "DC", "DCTERMS";
    <http://xmlns.com/foaf/0.1/> "FOAF";
    <http://purl.org/goodrelations/v1#> "GR";
    <http://www.w3.org/2002/12/cal/icaltzd#> "ICAL";
    <http://ogp.me/ns#> "OG";
    <http://purl.org/stuff/rev#> "REV";
    <http://rdfs.org/sioc/ns#> "SIOC";
    <http://rdf.data-vocabulary.org/#> "V";
    <http://www.w3.org/2006/vcard/ns#> "VCARD";
    <http://schema.org/> "Schema";

    # Vocabulary Terms
    <http://www.w3.org/2007/05/powder-s#describedby> "DescribedBy";
    <http://www.w3.org/1999/xhtml/vocab#license> "License";
    <http://www.w3.org/1999/xhtml/vocab#role> "Role";
}
Test 0260: XHTML+RDFa Initial Context
XHTML+RDFa initial context.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0259</title>
</head>
<body>
  <div>
    Vocabulary Terms
    <span property="alternate">alternate</span>
    <span property="appendix">appendix</span>
    <span property="cite">cite</span>
    <span property="bookmark">bookmark</span>
    <span property="contents">contents</span>
    <span property="chapter">chapter</span>
    <span property="copyright">copyright</span>
    <span property="first">first</span>
    <span property="glossary">glossary</span>
    <span property="help">help</span>
    <span property="icon">icon</span>
    <span property="index">index</span>
    <span property="last">last</span>
    <span property="license">license</span>
    <span property="meta">meta</span>
    <span property="next">next</span>
    <span property="prev">prev</span>
    <span property="previous">previous</span>
    <span property="section">section</span>
    <span property="start">start</span>
    <span property="stylesheet">stylesheet</span>
    <span property="subsection">subsection</span>
    <span property="top">top</span>
    <span property="up">up</span>
    <span property="p3pv1">p3pv1</span>
  </div>
</body></html>
PREFIX xhv: <http://www.w3.org/1999/xhtml/vocab#>

ASK WHERE {
  [
    # Vocabulary Terms
    xhv:alternate "alternate";
    xhv:appendix "appendix";
    xhv:cite "cite";
    xhv:bookmark "bookmark";
    xhv:contents "contents";
    xhv:chapter "chapter";
    xhv:copyright "copyright";
    xhv:first "first";
    xhv:glossary "glossary";
    xhv:help "help";
    xhv:icon "icon";
    xhv:index "index";
    xhv:last "last";
    xhv:license "license";
    xhv:meta "meta";
    xhv:next "next";
    xhv:prev "prev";
    xhv:previous "previous";
    xhv:section "section";
    xhv:start "start";
    xhv:stylesheet "stylesheet";
    xhv:subsection "subsection";
    xhv:top "top";
    xhv:up "up";
    
    # Other terms
    xhv:p3pv1 "p3pv1"
  ]
}
Test 0261: White space preservation in XMLLiteral
Whitespace must be maintained in an XMLLiteral, too
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://example.org/rdf/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<head>
	<title>Test 0261</title>
</head>
<body>
	<div about="http://www.example.org">
    <p property="ex:xmllit" datatype="rdf:XMLLiteral">This is
an XMLLiteral</p>
</div>
</body>
</html>
ASK WHERE {
 <http://www.example.org> <http://example.org/rdf/xmllit> """This is
an XMLLiteral"""^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .
}
Test 0262: Predicate establishment with @property, with white spaces before and after the attribute value
Tests @property to establish the predicate; literal object is in the content of the element. There are extra whitespaces before and after the property attribute value which should be ignored
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
<head>
   <title>Test 0262</title>
</head>
<body>
   <p>This photo was taken by <span class="author" about="photo1.jpg" property="    dc:creator
">Mark Birbeck</span>.</p>
</body>
</html>
ASK WHERE {
	<http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/photo1.jpg> <http://purl.org/dc/elements/1.1/creator> "Mark Birbeck" .
}
Test 0263: @property appearing on the html element yields the base as the subject
@property appearing on the html element without @content or @datatype yields the base as the subject
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" property="rdfs:seeAlso" resource="http://www.example.org">
<head >
	<title>Test 0263</title>
</head>
<body>
  <p> </p>
</body>
</html>
ASK WHERE {
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0263.xhtml> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <http://www.example.org> .
}
Test 0264: @property appearing on the head element gets the subject from , ie, parent
@property appearing on the head element gets the subject from , ie, parent
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head  property="rdfs:seeAlso" resource="http://www.example.org">
	<title>Test 0264</title>
</head>
<body>
  <p> </p>
</body>
</html>
ASK WHERE {
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0264.xhtml> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <http://www.example.org> .
}
Test 0265: @property appearing on the head element gets the subject from , ie, parent
@property appearing on the head element gets the subject from , ie, parent; in this case the parent subject is explicitly set via @about
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" about="http://www.example.com">
<head  property="rdfs:seeAlso" resource="http://www.example.org">
	<title>Test 0265</title>
</head>
<body>
  <p> </p>
</body>
</html>
ASK WHERE {
  <http://www.example.com> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <http://www.example.org> .
}
Test 0266: @property without @content or @datatype, typed object set by @href and @typeof
@property without @content or @datatype, typed object set by @href and @typeof
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Test 0266</title>
</head>
<body>
  <div about="http://www.w3.org/Person/Ivan#me">
     <a href="http://www.ivan-herman.net/foaf#me" typeof="foaf:Person" property="owl:sameAs">Ivan Herman</a>
  </div>
</body>
</html>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>

ASK WHERE {
<http://www.w3.org/Person/Ivan#me> owl:sameAs <http://www.ivan-herman.net/foaf#me> .
<http://www.ivan-herman.net/foaf#me> a foaf:Person .
}
Test 0267: @property without @content or @datatype, typed object set by @resource and @typeof
@property without @content or @datatype, typed object set by @resource and @typeof
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Test 0267</title>
</head>
<body>
  <div about="http://www.w3.org/Person/Ivan#me">
     <p resource="http://www.ivan-herman.net/foaf#me" typeof="foaf:Person" property="owl:sameAs">Ivan Herman</p>
  </div>
</body>
</html>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>

ASK WHERE {
<http://www.w3.org/Person/Ivan#me> owl:sameAs <http://www.ivan-herman.net/foaf#me> .
<http://www.ivan-herman.net/foaf#me> a foaf:Person .
}
Test 0268: @property without @content or @datatype, typed object set by @src and @typeof
@property without @content or @datatype, typed object set by @src and @typeof
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Test 0268</title>
</head>
<body>
  <div about="http://www.ivan-herman.net/foaf#me">
     <img src="http://www.ivan-herman.net/Images/me2003-small.png" typeof="foaf:Image" property="foaf:depiction" />
  </div>
</body>
</html>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>

ASK WHERE {
<http://www.ivan-herman.net/foaf#me> foaf:depiction <http://www.ivan-herman.net/Images/me2003-small.png> .
<http://www.ivan-herman.net/Images/me2003-small.png> a foaf:Image .
}
Test 0269: @property appearing on the html element yields the base as the subject, also with @content
@property appearing on the html element without @content or @datatype yields the base as the subject, also with @content
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" property="rdfs:comment" content="This is an RDFa test">
<head >
	<title>Test 0269</title>
</head>
<body>
  <p> </p>
</body>
</html>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
ASK WHERE {
  <http://rdfa.info/test-suite/test-cases/rdfa1.1/xhtml5/0269.xhtml> rdfs:comment "This is an RDFa test" .
}
Test 0271: Use of @property in HEAD with explicit parent subject via @about
@property appearing on the head element gets the subject from parent, also with @content and explicit @about at the top
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" about="http://www.example.org/">
<head property="rdfs:comment" content="This is an RDFa test">
	<title>Test 0269</title>
</head>
<body>
  <p> </p>
</body>
</html>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
ASK WHERE {
  <http://www.example.org/> rdfs:comment "This is an RDFa test" .
}
Test 0272: time element with @datetime an xsd:date
The @datetime attribute is used when generating output with valid xsd:date.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0272</title>
</head>
<body>
  <time property="rdf:value" datetime="2012-03-18Z">18 March 2012</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "2012-03-18Z"^^xsd:date ] .
}
Test 0273: time element with @datetime an xsd:time
The @datetime attribute is used when generating output with valid xsd:time.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0273</title>
</head>
<body>
  <time property="rdf:value" datetime="00:00:00Z">midnight</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "00:00:00Z"^^xsd:time ] .
}
Test 0274: time element with @datetime an xsd:dateTime
The @datetime attribute is used when generating output with valid xsd:dateTime.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0274</title>
</head>
<body>
  <time property="rdf:value" datetime="2012-03-18T00:00:00Z">18 March 2012 at midnight</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "2012-03-18T00:00:00Z"^^xsd:dateTime ] .
}
Test 0275: time element with value an xsd:date
The time element value is used when generating output with valid xsd:date.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0275</title>
</head>
<body>
  <time property="rdf:value">2012-03-18Z</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "2012-03-18Z"^^xsd:date ] .
}
Test 0276: time element with value an xsd:time
The time element value is used when generating output with valid xsd:time.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0275</title>
</head>
<body>
  <time property="rdf:value">00:00:00Z</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "00:00:00Z"^^xsd:time ] .
}
Test 0277: time element with value an xsd:dateTime
The time element value is used when generating output with valid xsd:dateTime.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0277</title>
</head>
<body>
  <time property="rdf:value">2012-03-18T00:00:00Z</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "2012-03-18T00:00:00Z"^^xsd:dateTime ] .
}
Test 0278: @datetime overrides @content
The @datetime attribute must be utilized when generating output, overriding any value expressed using the @content attribute.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0278</title>
</head>
<body>
  <time property="rdf:value" datetime="2012-03-18" content="not this">18 March 2012</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "2012-03-18"^^xsd:date ] .
}
Test 0279: @datetype used with @datetime overrides default datatype
If @datatype is specified, it must override the automatic datatype.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0279</title>
</head>
<body>
  <time property="rdf:value" datetime="2012-03-18T00:00:00Z" datatype="xsd:date">18 March 2012 at midnight</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "2012-03-18T00:00:00Z"^^xsd:date ] .
}
Test 0280: time element with @datetime an xsd:duration
The @datetime attribute is used when generating output with valid xsd:duration.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0280</title>
</head>
<body>
  <time property="rdf:value" datetime="P2011Y06M28DT00H00M00S">2011 years 6 months 28 days</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "P2011Y06M28DT00H00M00S"^^xsd:duration ] .
}
Test 0281: time element with @datetime an xsd:gYear
The @datetime attribute is used when generating output with valid xsd:gYear.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0281</title>
</head>
<body>
  <time property="rdf:value" datetime="2012">Two Thousand Twelve</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "2012"^^xsd:gYear ] .
}
Test 0282: time element with @datetime an xsd:gYearMonth
The @datetime attribute is used when generating output with valid xsd:gYearMonth.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0282</title>
</head>
<body>
  <time property="rdf:value" datetime="2012-03">March, Two Thousand Twelve</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "2012-03"^^xsd:gYearMonth ] .
}
Test 0283: time element with @datetime an invalid datatype generates plain literal
If the lexical scope of @datetime does not exactly match a known datatype a plain literal is generated.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0283</title>
</head>
<body>
  <time property="rdf:value"> 2012-03-18Z</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value " 2012-03-18Z" ] .
}
Test 0284: @data is an IRI attribute
The @data attribute generates an IRI.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0284</title>
</head>
<body>
  <time property="rdf:value" datatype="xsd:dateTime"> 2012-03-18Z</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value " 2012-03-18Z"^^xsd:dateTime ] .
}
Test 0285: time element with @datetime an invalid datatype and in scope @lang generates plain literal with language
If no @datatype is specified and the value does not match a xsd:dateTime, xsd:date, or xsd:time pattern, a plain literal must be generated with the associated language of the node, if available.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0285</title>
</head>
<body>
  <time property="rdf:value" lang="en" datetime="D-Day">
    Non matching lexical value with language.
  </time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

ASK WHERE {
  [ rdf:value "D-Day"@en ] .
}
Test 0286: @value attribute overrides @content
the HTML5 @value attribute must be utilized when generating output. If @value is detected, it must override and be processed according to the rules for @content.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0286</title>
</head>
<body>
  <data property="rdf:value" lang="lat" value="veni, vidi, vici" content="I came, I saw, I conquered">
    @value overrides @content in the 'data' element.
  </data>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

ASK WHERE {
  [ rdf:value "veni, vidi, vici"@lat ] .
}
Test 0287: time element with @datetime an xsd:dateTime with TZ offset
The @datetime attribute is used when generating output with valid xsd:dateTime and a Time Zone offset.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0287</title>
</head>
<body>
  <time property="rdf:value" datetime="2012-03-18T00:00:00-08:00">18 March 2012 at midnight in San Francisco</time>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ASK WHERE {
  [ rdf:value "2012-03-18T00:00:00-08:00"^^xsd:dateTime ] .
}
Test 0288: object element with @data parses as an IRI
@data is a resource attribute.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0288</title>
</head>
<body>
  <object property="rdf:value" data="http://example.com/"></object>
</body>    </html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

ASK WHERE {
  [ rdf:value <http://example.com/> ] .
}
Test 0289: @href becomes subject when @property and @content are present
When @property and @content are present but @about, @rel and @rev are not, @href is used as subject.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0289</title>
</head>
<body>
  <h1>@href becomes subject when @property and @content are present</h1>
  <a href="http://example.org/" property="rdf:value" content="value">ignored</a>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

ASK WHERE {
  <http://example.org/> rdf:value "value" .
}
Test 0290: @href becomes subject when @property and @datatype are present
When @property and @datatype are present but @about, @rel and @rev are not, @href is used as subject and element content is used as an object literal.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0290</title>
</head>
<body>
  <h1>@href becomes subject when @property and @datatype are present</h1>
  <a href="http://example.org/" property="rdf:value" datatype="">value</a>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

ASK WHERE {
  #<http://example.org/> rdf:value <http://example.org/>  .
  <http://example.org/> rdf:value "value" .
}
Test 0291: @href as subject overridden by @about
When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<head>
  <title>Test 0291</title>
</head>
<body>
  <h1>@href as subject overridden by @about</h1>
  <a about="http://example.net/" href="http://example.org/" property="rdf:value" content="value">ignored</a>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

ASK WHERE {
  <http://example.net/> rdf:value "value" .
}
Test 0292: @about overriding @href as subject is used as parent resource
When @property, @datatype, @href and @about are present but @rel and @rev are not, @about is used as subject and is also applied to nested descriptions.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<head>
  <title>Test 0292</title>
</head>
<body>
  <h1>@about overriding @href as subject is used as parent resource</h1>
  <a about="http://example.net/" href="http://example.org/" property="rdf:value" content="value one">
    <span property="rdf:value">value two</span>
  </a>
</body>
</html>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

ASK WHERE {
  <http://example.net/> rdf:value "value one", "value two" .
}
Test 0293: Testing the ':' character usage in a CURIE
RDFa 1.1 CURIE allows the ':' to appear in the reference part of a CURIE.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test 0293</title>
</head>
<body>
  <h1>Testing the ':' character usage in a CURIE</h1>
  <div prefix="ex: http://www.example.org/">
     <p about="http://www.example.org" property="ex:column:test">Test</p>
  </div>
</body>
</html>
ASK WHERE {
  <http://www.example.org> <http://www.example.org/column:test> "Test" .
}

D. References

D.1 Normative references

No normative references.

D.2 Informative references

[EARL10-SCHEMA]
Shadi Abou-Zahra. Evaluation and Report Language (EARL) 1.0 Schema. 23 March 2007. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/2007/WD-EARL10-Schema-20070323
[HTML5]
Ian Hickson; David Hyatt. HTML5. 25 May 2011. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/html5
[RDFA-CORE]
Shane McCarron; et al. RDFa Core 1.1: Syntax and processing rules for embedding RDF through attributes. 13 March 2012. W3C Candidate Recommendation. URL: http://www.w3.org/TR/2012/CR-rdfa-core-20120313/
[SVG12]
Craig Northway; Dean Jackson. Scalable Vector Graphics (SVG) Full 1.2 Specification. 13 April 2005. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/2005/WD-SVG12-20050413
[XHTML-RDFA]
Shane McCarron; et. al. XHTML+RDFa 1.1. 13 March 2012. W3C Candidate Recommendation. URL: http://www.w3.org/TR/2012/CR-xhtml-rdfa-20120313/