Copyright © 2007 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
The document describes and presents test cases for the Protocol for Web Description Resources (POWDER). The test cases aim to indicate the correct formats of POWDER documents and illustrate various crucial aspects on the usage of POWDER documents, such as locating a document and infering information from it.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This is a First Public Working Draft, designed to aid discussion and solicit feedback. It was developed by the POWDER Working Group, which expects to advance this Working Draft to become a Working Group Note. Clearly there is more test data to be added, which is expected to happen relatively rapidly.
Please send comments about this document to public-powderwg@w3.org (with public archive).
Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. The group does not expect this document to become a W3C Recommendation. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
As part of the POWDER specification, the POWDER Working Group provides a set of test cases. The present document discusses these test cases. They are intented to facilitate and exemplify the creation of POWDER documents of varying complexity and provide a means to assert the conformance of software applications designed to handle POWDER documents.
The document provides a description of the various test types, the format that was used and the structure of the manifest files that accompany the tests.
The tests are classified with respect to the issue they aim to examine. The main concerns are the syntactic validity of a document, the equivalence between various forms of POWDER documents, the ability to locate a POWDER document associated with a resource and the ability to infer information about a given resource from a POWDER document associated with it. The following sections indicate the classification of the tests included in the test suite and describe their structure.
The parser tests aim to provide a test corpus for implementations of a POWDER parser.
The parser tests are initially separated into positive and negative parser tests. Each test examines the valitidy of a POWDER document against a conformance requirement of the specification. The documents included in the positive tests meet the requirement they are tested against, whereas those included in the negative tests violate a given element of the conformance model.
When given a positive parser test document as its input, a POWDER parser is expected to return a validity confirmation message. In contrast, when the input is a negative parser test document, the POWDER parser is expected to report that the POWDER document is invalid, and may return a message indicating the requirement that is not met, as indicated in the manifest file accompanying the POWDER document of the test.
Each test consists of one POWDER document and a Manifest file. The POWDER document is named posNNN.xml or negNNN.xml if it is included in the positive or negative parser tests respectively, where NNN is the index number of the test with three digits. The Manifest file is named ManifestposNNN.rdf or ManifestnegNNN.rdf.
The GRDDL tests aim to provide a test corpus for implementations of a POWDER-to-POWDER-S transformation tool.
These tests include pairs of documents. The first peer is a POWDER document, named powderNNN.xml and the second is a POWDER-S document, named powdersNNN.rdf. Each POWDER-S document is what should be derived from its corresponding POWDER document when applying a transformation on the latter. The transformation may or may not be performed using the XSLT provided for this purpose, but the output POWDER-S document must be semantically equivalent (i.e. correspond to equivalent graphs). The Manifest file describing each test is named ManifestgrddlNNN.rdf.
The POWDER locator tests aim to facilitate the testing of applications used to examine the association of a resource with a POWDER description that applies to it. The tests comprise pairs of documents. The first document defines a web resource that contains a reference to a POWDER document while the second one is the POWDER document itself. Any locator MUST reach the POWDER document via the resource, or report. There are tests for each means of locating a POWDER document, as defined in the DR document included in the specification [DR].
TBC
The tests use two documents: a POWDER document and a POWDER-S document. Each test runs an XPath query [XPATH] against the POWDER document or a SPARQL query [SPARQL] against the POWDER-S document. The queries are given as a file named xpathNNN.xp or sparqlNNN.sq. Each file is accompanied by a manifest file, named ManifestxpathNNN.rdf or ManifestsparqlNNN.rdf which defines the information inferred by the query. The results are given in a file named respxpathNNN or respsparqlNNN.
The Manifest files provide a formal, machine-readable description of the test they apply to. Those associated with the POWDER tests follow the schema developed for the RDF test cases [RDF-TEST]. Furthermore, the said schema is extended to include some new properties and types, as defined in the POWDER test ontology (TBD).
Each test is associated with a Manifest file, identified from the URI formed from the file's URL with a fragment test. A given test has a rdf:type explicit, within the scope of:
wdrtest:parsertest
wdrtest:grddltest
wdrtest:locatortest
wdrtest:trusttest
wdrtest:dataextractiontest
Where the wdrtest namespace is bound to http://www.w3.org/2008/07/powder-test/testSchema#
and rtest is bound to http://www.w3.org/2000/10/rdf-tests/rdfcore/testSchema#.
The name of the original author of each test is given using a dc:creator property.
The description of the test is given as a value of a rtest:description property.
The relevant requirement of the specification that this test examines is given as value of a wdrtest:specref property.
The input document for a test is given as a value of a rtest:inputDocument property, whereas the expected output document, if applied, is given as a value of a rtest:outputDocument property. If the production of an output document is not the purpose of the test process, the wdrtest:expectedDocument can be used to provide a free description of the expected results from the execution of the test.
The status of a test included in the suite, declared using a rtest:status property, can be in the set of the following values:
This section demonstrates the documents included in the POWDER Test Suite. The documents are categorized with respect to their type. Each test is defined by the following parameters:
1. The type of the test.
2. A description for the purpose of the test, with respect to its type.
3. A link to the section of the relevant document that defines the part of the specification that is subject to the test.
3. The index of the test in the particular type.
4. A link to the Manifest file that provides a formal description for the test.
5. The preconditions that must be taken into account in order to consider the test valid.
6. The documents that are part of the test.
The actual documents, along with the Manifest file, can be downloaded in a compressed file. The directory structure of the compressed file has as follows:
Each directory contains the test documents of the corresponding type, along with the manifest file of each test and following the naming conventions discussed in the present document.
Contents
Parser Test |
Positive | A POWDER document must include exactly one attribution element | 001 |
Test Assertion | |||
A valid POWDER document must include exactly one attribution element | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.1 Operational Semantics | |||
Description | |||
Manifestpos001.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14T00:00:00</issued> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.org is red and square</displaytext> <displayicon ref="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
Parser Test | Positive | The attribution element optionally contains a unique issued element | 002 |
Test Assertion | |||
The required attribution element of a valid POWDER document may contain exactly one issued element | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.1 Operational Semantics | |||
Description | |||
Manifestpos002.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14T00:00:00</issued> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.org is red and square</displaytext> <displayicon src="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
Parser Test | Positive | An attribution element optionally contains a unique validfrom element and/or a unique validuntil element | 003 |
Test Assertion | |||
The required attribution element of a valid POWDER document may contain exactly one validfrom element and may contain exactly one validuntil element | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 4.2 Certification Using POWDER | |||
Description | |||
Manifestpos003.rdf | |||
Precondition - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me"/> <issued>2007-12-14T00:00:00</issued> <validfrom>2007-12-14T00:00:00</validfrom> <validuntil>2008-12-14T00:00:00</validuntil> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.org is red and square</displaytext> <displayicon src="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
Parser Test | Positive | The attribution element may contain an abouthosts element | 004 |
Test Assertion | |||
The required attribution element of a valid POWDER document may contain exactly one abouthosts elements | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.3 Exclusive Description Resources | |||
Description | |||
Manifestpos004.rdf | |||
Precondition - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me"/> <issued>2007-12-14T00:00:00</issued> <validfrom>2007-12-14T00:00:00</validfrom> <validuntil>2008-12-14T00:00:00</validuntil> <abouthosts>books.example.com archive.example.net</abouthosts> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.org is red and square</displaytext> <displayicon src="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
Parser Test | Positive | A POWDER document may include an unordered list of two or more descriptor set elements | 005 |
Test Assertion | |||
A valid POWDER document may contain any number of dr elements | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.1 Operational Semantics | |||
Description | |||
Manifestpos005.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <descriptorset> <ex:color>red</ex:color> </descriptorset> </dr> <dr> <iriset> <includehosts>example.com</includehosts> <includepathstartswith>/foo</includepathstartswith> </iriset> <descriptorset> <ex:color>blue</ex:color> </descriptorset> </dr> </powder> |
Parser Test | Positive | A POWDER document may include an ordered list of two or more descriptor set elements | 006 |
Test Assertion | |||
A valid POWDER document may contain an ol element which contains an arbitrarily sized ordered set of dr elements | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.3 Exclusive Description Resources | |||
Description | |||
Manifestpos006.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> </attribution> <ol> <dr> <iriset> <includehosts>example.com</includehosts> <includepathstartswith>/foo</includepathstartswith> </iriset> <descriptorset> <ex:color>blue</ex:color> </descriptorset> </dr> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <descriptorset> <ex:color>red</ex:color> </descriptorset> </dr> </ol> </powder> |
Parser Test | Positive | A POWDER document may include descriptor set elements without a dr element | 007 |
Test Assertions | |||
A valid POWDER document may contain descriptorset elements not within a dr element | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.5 Direct Resource Description | |||
Description | |||
Manifestpos007.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <abouthosts>example.org example.com</abouthosts> </attribution> <descriptorset xml:id="red"> <ex:color>red</ex:color> </descriptorset> <descriptorset xml:id="blue"> <ex:color>blue</ex:color> </descriptorset> </powder> |
Parser Test | Negative | Every POWDER document includes exactly one attribution element | 001 |
Test Assertion | |||
If a POWDER document does not include exactly one attribution element, it is not a valid POWDER document | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.1 Operational Semantics | |||
Description | |||
Manifestneg001.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14T00:00:00</issued> </attribution> <attribution> <issuedby ref="http://authority.example.org/company.rdf#you" /> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.org is red and square</displaytext> <displayicon src="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
Parser Test | Negative | The attribution element MUST contain an issuedby element | 002 |
Test Assertion | |||
If a POWDER document contains an attribution element that does not include an issuedby element, it is not a valid POWDER document | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.1 Operational Semantics | |||
Description | |||
Manifestneg002.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issued>2007-12-14T00:00:00</issued> <validfrom>2007-12-14T00:00:00</validfrom> <validuntil>2008-12-14T00:00:00</validuntil> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.org is red and square</displaytext> <displayicon src="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
Parser Test | Negative | A dr element MUST include an iriset element | 003 |
Test Assertion | |||
If a POWDER document contains at least one dr element that does not include an iriset element, it is not a valid POWDER document | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.1 Operational Semantics | |||
Description | |||
Manifestneg003.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14T00:00:00</issued> </attribution> <dr> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.org is red and square</displaytext> <displayicon src="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
Parser Test | Negative | An iriset element must not be empty | 004 |
Test Assertion | |||
If a POWDER document contains a dr element that has an empty iriset element, it is not a valid POWDER document | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.1 Operational Semantics | |||
Description | |||
Manifestneg004.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14T00:00:00</issued> <validfrom>2007-12-14T00:00:00</validfrom> <validuntil>2008-12-14T00:00:00</validuntil> </attribution> <dr> <iriset> </iriset> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.org is red and square</displaytext> <displayicon src="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
Parser Test | Negative | A descriptorset element must not contain tag elements | 005 |
Test Assertion | |||
If a POWDER document contains a descriptorset element that contains a tag element, it is not a valid POWDER document | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.7 Free Text Tags, Comments, Labels and "See Also" | |||
Description | |||
Manifestneg005.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14T00:00:00</issued> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <desriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <tag>London</tag> </descriptorset> <tagset> <tag>Swiss Re</tag> <tag>gherkin</tag> <tag>London</tag> </tagset> </dr> </powder> |
Parser Test | Negative | A dr element must contain a descriptotrset element or a tag element | 006 |
Test Assertion | |||
If a POWDER document contains neither a descriptorset element nor a tagset element, it is not a valid POWDER document | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.7 Free Text Tags, Comments, Labels and "See Also" | |||
Description | |||
Manifestneg006.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14T00:00:00</issued> </attribution> <dr> <iriset> <includehostsvexample.com</includehosts> </iriset> </drv </powder> |
GRDDL Test | Positive | Transformation of a POWDER document with a single Description Resource | 001 |
Test Assertion | |||
A transformation of a POWDER document to POWDER-S must produce semantically identical results with this test in respect to the dr elements | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.2 Formal Semantics | |||
Description | |||
Manifestgrddl001.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby ref="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14</issued> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.org is red and square</displaytext> <displayicon ref="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
|||
<?xml version="1.0"?> <rdf:RDF xmlns:wdr="http://www.w3.org/2007/05/powder#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/0.1/" xmlns:ex="http://example.org/vocab#"> <rdf:Description rdf:about=""> <wdrs:issuedby rdf:resource="http://authority.example.org/company.rdf#me" /> <dcterms:issued>2007-12-14</dcterms:issued> </rdf:Description> <wdr:iriset rdf:nodeID="iriset_1"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://www.w3.org/2007/05/powder#regex" /> <owl:hasValue>\:\/\/([^\:\/\?\#\@]+\.)?(example\.com)(:([0-9]+))?\/</owl:hasValue> </owl:Restriction> </owl:intersectionOf> </wdr:iriset> <owl:Class rdf:nodeID="descriptorset_1"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://example.org/vocab#color" /> <owl:hasValue>red</owl:hasValue> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="http://example.org/vocab#shape" /> <owl:hasValue>square</owl:hasValue> </owl:Restriction> </owl:intersectionOf> <dc:description>Everything on example.org is red and square</dc:description> <foaf:depiction rdf:resource="http://example.org/icon.png" /> </owl:Class> <owl:Class rdf:about="#iriset_1"> <rdfs:subClassOf rdf:resource="#descriptorset_1"/> </owl:Class> </rdf:RDF> |
GRDDL Test | Positive | Transformation of a POWDER document with an ordered list of Description Resources | 002 |
Test Assertion | |||
A transformation of a POWDER document to POWDER-S must produce semantically identical results with this test with respect to the ol elements | |||
Protocol for Web Description Resources (POWDER): Description Resources Section 2.3 Exclusive Description Resources | |||
Description | |||
Manifestgrddl002.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby ref="http://authority.example.org/company.rdf#me" /> </attribution> <ol> <dr> <iriset> <includehosts>example.com</includehosts> <includepathstartswith>/foo</includepathstartswith> </iriset> <descriptorset> <ex:color>blue</ex:color> </descriptorset> </dr> <dr> <iriset> <includehosts>example.com</includehosts> </iriset> <descriptorset> <ex:color>red</ex:color> </descriptorset> </dr> </ol> </powder> |
|||
<?xml version="1.0"?> <rdf:RDF xmlns:wdr="http://www.w3.org/2007/05/powder#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dcterms/0.1/" xmlns:ex="http://example.org/vocab#"> <rdf:Description rdf:about=""> <wdrs:issuedby rdf:resource="http://authority.example.org/company.rdf#me" /> <wdr:aboutHosts>example.org</wdr:aboutHosts> </rdf:Description> <owl:Class rdf:nodeID="iriset_1"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://www.w3.org/2007/05/powder#regex" /> <owl:hasValue>\:\/\/([^\:\/\?\#\@]+.)?(example\.com)(\:([0-9]+))?\/</owl:hasValue> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="http://www.w3.org/2007/05/powder#regex" /> <owl:hasValue>\:\/\/([^\:\/\?\#\@]*)(\:([0-9]+))?(\/foo)</owl:hasValue> </owl:Restriction> </owl:intersectionOf> </owl:Class> <owl:Class rdf:nodeID="descriptorset_1"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://example.org/vocab#color" /> <owl:hasValue>blue</owl:hasValue> </owl:Restriction> </owl:intersectionOf> </owl:Class> <owl:Class rdf:about="#iriset_1"> <rdfs:subClassOf rdf:resource="#description_1"/> </owl:Class> <owl:Class rdf:nodeID="iriset_2"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://www.w3.org/2007/05/powder#regex" /> <owl:hasValue>\:\/\/([^\:\/\?\#\@]+.)?(example\.com)(\:([0-9]+))?\/</owl:hasValue> </owl:Restriction> </owl:intersectionOf> </owl:Class> <owl:Class rdf:nodeID="descriptorset_2"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://example.org/vocab#color" /> <owl:hasValue>red</owl:hasValue> </owl:Restriction> </owl:intersectionOf> </owl:Class> <owl:Class> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#iriset_2"/> <owl:Class> <owl:complementOf rdf:parseType="Collection"> <owl:Class rdf:about="#iriset_1"/> </owl:complementOf> </owl:Class> </owl:intersectionOf> <rdfs:subClassOf rdf:ID="description_2"/> </owl:Class> </rdf:RDF> |
GRDDL Test | Positive | Transformation of a POWDER document containing a description resource for which the scope is the union of two IRI sets | 003 |
Test Assertion | |||
A transformation of a POWDER document to POWDER-S must produce semantically identical results with this test with respect to the union of iriset elements | |||
Protocol for Web Description Resources (POWDER): Grouping of Resources Section 2.6 Grouping of resources | |||
Description | |||
Manifestgrddl003.rdf | |||
Preconditions - Namespaces | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14T00:00:00</issued> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> <includepathstartswith>/foo</includepathstartswith> </iriset> <iriset> <includehosts>example.org</includehosts> <includepathstartswith>/bar</includepathstartswith> </iriset> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.com/foo, and everything on example.org/bar, is red and square</displaytext> <displayicon src="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
|||
<?xml version="1.0"?> <rdf:RDF xmlns:wdr="http://www.w3.org/2007/05/powder#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dcterms/0.1/" xmlns:ex="http://example.org/vocab#"> <rdf:Description rdf:about=""> <wdrs:issuedby rdf:resource="http://authority.example.org/company.rdf#me" /> <dcterms:issued>2007-12-14T00:00:00</dcterms:issued> </rdf:Description> <wdr:iriset rdf:nodeID="iriset_1"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://www.w3.org/2007/05/powder#regex" /> <owl:hasValue>\:\/\/([^\:\/\?\#\@]+\.)?(example\.com)(:([0-9]+))?\/</owl:hasValue> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="http://www.w3.org/2007/05/powder#regex" /> <owl:hasValue>\:\/\/([^\:\/\?\#\@]*)(\:([0-9]+))?(\/foo)</owl:hasValue> </owl:Restriction> </owl:intersectionOf> </wdr:iriset> <wdr:iriset rdf:nodeID="iriset_2"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://www.w3.org/2007/05/powder#regex" /> <owl:hasValue>\:\/\/([^\:\/\?\#\@]+\.)?(example\.org)(:([0-9]+))?\/</owl:hasValue> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="http://www.w3.org/2007/05/powder#regex" /> <owl:hasValue>\:\/\/([^\:\/\?\#\@]*)(\:([0-9]+))?(\/bar)</owl:hasValue> </owl:Restriction> </owl:intersectionOf> </wdr:iriset> <owl:Class rdf:nodeID="descriptorset_1"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://example.org/vocab#color" /> <owl:hasValue>red</owl:hasValue> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="http://example.org/vocab#shape" /> <owl:hasValue>square</owl:hasValue> </owl:Restriction> </owl:intersectionOf> <dc:description>Everything on example.com/foo, and everything on example.org/bar, is red and square</dc:description> <foaf:depiction rdf:resource="http://example.org/icon.png" /> </owl:Class> <owl:Class rdf:about="#iriset_1"> <rdfs:subClassOf rdf:nodeID="descriptorset_1"/> </owl:Class> <owl:Class rdf:about="#iriset_2"> <rdfs:subClassOf rdf:nodeID="descriptorset_1"/> </owl:Class> </rdf:RDF> |
GRDDL Test | Positive | Transformation of a POWDER document with no DRs but with descriptors that can be referenced externally | 004 |
Test Assertion | |||
A transformation of a POWDER document to POWDER-S must produce semantically identical results with this test with respect to the transformation of descriptorset elements not within a dr element | |||
TBD | |||
Description | |||
Manifestgrddl004.rdf | |||
Preconditions - Namespaces | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <abouthosts>example.org example.com</abouthosts> </attribution> <descriptorset xml:id="red"> <ex:color>red</ex:color> </descriptorset> <descriptorset xml:id="blue"> <ex:color>blue</ex:color> </descriptorset> </powder> |
|||
<?xml version="1.0"?> <rdf:RDF xmlns:wdr="http://www.w3.org/2007/05/powder#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dcterms/0.1/" xmlns:ex="http://example.org/vocab#"> <rdf:Description rdf:about=""> <wdrs:issuedby rdf:resource="http://authority.example.org/company.rdf#me" /> <wdr:abouthosts>example.org example.com</wdr:abouthosts> </rdf:Description> <owl:Class rdf:ID="red"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://example.org/vocab#color" /> <owl:hasValue>red</owl:hasValue> </owl:Restriction> </owl:intersectionOf> </owl:Class> <owl:Class rdf:ID="blue"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://example.org/vocab#color" /> <owl:hasValue>blue</owl:hasValue> </owl:Restriction> </owl:intersectionOf> </owl:Class> </rdf:RDF> |
GRDDL Test | Positive | Transformation of a POWDER document containing includehost and includeports in the iriset element | 005 |
Test Assertion | |||
A transformation of a POWDER document to POWDER-S must produce semantically identical results with this test with respect to the transformation of includehosts and includeports elements | |||
Protocol for Web Description Resources (POWDER): Grouping of Resources Section 2.1 Constraints on IRI components | |||
Description | |||
Manifestgrddl005.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"?> <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14T00:00:00</issued> </attribution> <dr> <iriset> <includehosts>example.com example.org</includehosts> <includeports>80 8080 8081 8082</includeports> </iriset> <descriptorset> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <displaytext>Everything on example.org and example.com is is red and square</displaytext> <displayicon src="http://example.org/icon.png" /> </descriptorset> </dr> </powder> |
|||
<?xml version="1.0"?> <rdf:RDF xmlns:wdrs="http://www.w3.org/2007/05/powder-s#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/0.1/" xmlns:ex="http://example.org/vocab#"> <rdf:Description rdf:about=""> <wdrs:issuedby rdf:resource="http://authority.example.org/company.rdf#me" /> <dcterms:issued>2007-12-14T00:00:00</dcterms:issued> </rdf:Description> <owl:Class rdf:nodeID="iriset_1"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://www.w3.org/2007/05/powder-s#matchesregex" /> <owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema-datatypes#string">\:\/\/([^\:\/\?\#\@]+\.)?(example\.com|example\.org)(\:([0-9]+))?\/</owl:hasValue> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="http://www.w3.org/2007/05/powder-s#matchesregex" /> <owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema-datatypes#string">\:\/\/([^\:\/\?\#\@]+\.)*[^\:\/\?\#\@]+\:(80|8080|8081|8082)\/</owl:hasValue> </owl:Restriction> </owl:intersectionOf> </owl:Class> <owl:Class rdf:nodeID="descriptorset_1"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="http://example.org/vocab#color" /> <owl:hasValue>red</owl:hasValue> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="http://example.org/vocab#shape" /> <owl:hasValue>square</owl:hasValue> </owl:Restriction> </owl:intersectionOf> <dc:description>Everything on example.org and example.com is is red and square</dc:description> <foaf:depiction rdf:resource="http://example.org/icon.png" /> </owl:Class> <owl:Class rdf:about="#iriset_1"> <rdfs:subClassOf rdf:resource="#descriptorset_1"/> </owl:Class> </rdf:RDF> |
GRDDL Test | Positive | Transformation of a POWDER document with user-defined datatypes | 006 |
Test Assertion | |||
A transformation of a POWDER document containing user-defined datatypes to POWDER-S must produce semantically identical results with this test | |||
TBD | |||
Description | |||
Manifestgrddl006.rdf | |||
Preconditions - Namespace | |||
@prefix ex: <http://example.org/vocab> . | |||
Documents | |||
<?xml version="1.0"? <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/vocab#"> <attribution> <issuedby src="http://authority.example.org/company.rdf#me" /> <issued>2007-12-14T00:00:00</issued> </attribution> <dr> <iriset> <includehosts>example.com</includehosts> <includeports>80 8080 8081 8082</includeports> </iriset> <descriptorset> <ex:colour rdf:resource=="http://example.org/vocab#red"/> <ex:shape>square</ex:shape> </descriptorset> </dr> </powder> |
|||
<?xml version="1.0"?> <rdf:RDF xmlns:wdrs="http://www.w3.org/2007/05/powder-s#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:ox="http://www.w3.org/2006/12/owl2#" xmlns:ex="http://example.org/vocab#"> <rdf:Description rdf:about=""> <wdrs:issuedby rdf:resource="http://authority.example.org/company.rdf#me" /> </rdf:Description> <ox:Declaration rdf:nodeID="iriset_1"> <ox:OWLClass ox:URI="#iriset_1"> <ox:ObjectIntersectionOf> <ox:DataAllValuesFrom> <ox:DataProperty>wdr:hasIRI</ox:DataProperty> <ox:DatatypeRestriction> <ox:Datatype>xsd:anyURI</ox:Datatype> <ox:Restriction facet="pattern" > \:\/\/([^\:\/\?\#\@]+\.)?(example\.com|example\.org)(\:([0-9]+))?\/ </ox:Restriction> </ox:DatatypeRestriction> </ox:DataAllValuesFrom> <ox:DataAllValuesFrom> <ox:DataProperty>wdr:hasIRI</ox:DataProperty> <ox:DatatypeRestriction< <ox:Datatype>xsd:anyURI</ox:Datatype> <ox:Restriction facet="pattern" > \:\/\/([^\:\/\?\#\@]+\.)*[^\:\/\?\#\@]+\:(80|8080|8081|8082)\/ </ox:Restriction> </ox:DatatypeRestriction> </ox:DataAllValuesFrom> </ox:ObjectIntersectionOf> </ox:OWLClass> </ox:Declaration> <ox:Declaration rdf:nodeID="descriptor_1"> <ox:OWLClass ox:URI="description_1"> <ox:ObjectIntersectionOf> <ox:ObjectHasValue> <ox:ObjectProperty>ex:shape</ox:ObjectProperty> <ox:Individual>ex:square</ox:Individual> </ox:ObjectHasValue> </ox:ObjectIntersectionOf> </ox:OWLClass> </ox:Declaration> <ox:SubClassOf> <ox:OWLClass ox:URI="#iriset_1" /> <ox:OWLClass ox:URI="#descriptorset_1" /> </ox:SubClassOf> </rdf:RDF> |
TBD
TBD
TBD
Many thanks to Tim Boland for his comments and guidelines during the creation of this document.