Feature | Section & relevant examples | Validator | POWDER and POWDER BASE XML Schema | Perl Processor | PHP Processor | Semantic Processor |
---|---|---|---|---|---|---|
Basic structure of a POWDER Document | Section 2.1, Example 2-1 | Yes | Tool includes validator | Tool includes validator (validation is carried out against the POWDER(-BASE) XML schema) | N/A | |
Multiple Description Resources in a POWDER document | Section 2.1, Example 2-2; Section 2.3, Example 2-4 | Yes | Yes (gives additive description) | Yes (gives additive description) | Yes | |
Disjoint Description Resources in a POWDER document | Section 2.3, Example 2-5 | Yes | Yes (gives correct, single, description) | Yes (gives correct, single, description) | Yes | |
Ordered Lists of DRs | Section 2.3, Example 2-6, Example 2-7 | Yes | Yes (gives correct, single, description) | Yes (gives correct, single, description) | Yes | |
DRs with multiple IRI sets POWDER | Section 2.4, Example 2-8 | Yes | Yes | Yes | Yes | |
Direct Resource Description | Section 2.5, Example 2-9 | Yes | Yes. Any IRI is described correctly if the fragment identifier is included in the value of d | Yes. Any IRI is described correctly if the fragment identifier is included in the value of d | No | |
Pre-defined descriptions, remote descriptor sets | Section 2.6, Example 2-10, Example 2-11 | Yes | Yes | Yes | Yes | |
Free Text Tags, Comments, Labels and "See Also" | Section 2.7, Example 2-12, Example 2-13 | Yes | Yes | Yes | Yes | |
Multiple Descriptor Sets | Section 2.8.1, Example 2-14 | Yes | Yes | Yes | Yes | |
XML Data in POWDER | Section 2.8.2, Example 2-15 | Yes | Yes | Yes | Yes | |
Follows HTML Link elements with rel="describedby" and relevant Content type |
Section 4.1.1, Example 4-1 | N/A | No | Yes | N/A | |
Follows HTTP Link elements with rel="describedby" and relevant Content type |
Section 4.1.1 | N/A | No | Yes | N/A | |
Linking a Resource to a POWDER Processor to Acquire RDF | Section 4.2 | N/A | Yes | Yes | N/A | |
Follows wdr:more links within POWDER documents |
Section 4.3, Example 4-5 | N/A | Yes | Yes | Not, but ontology headers (including the rdfs:seeAlso triple generated from the wdr:more element) are returned if the -a switch is on |
Feature | Section & relevant examples | Perl Processor | PHP Processor | Semantic Processor |
---|---|---|---|---|
describe(u) function | Section 3, Example 3-1 | Yes | Yes | Yes |
No Known result | Section 3, Example 3-2 | Yes | Yes (in addition, it returns an error when POWDER documents do exist, but they do not apply to the associated resource) | Yes |
POWDER Processor Error handling | Section 3.1 | Yes | Yes | N/A |
Processes POWDER-BASE | Section 3.2 | Yes | Yes | No |
Processes POWDER | Section 3.2 | Yes | Yes (via POWDER-BASE) | No |
Processes POWDER-S | Section 3.2 | No | No | Yes |
Returns an informative message if passed a POWDER or POWDER-S document if these are not supported | Section 3.2 | Yes | Only for POWDER-S (POWDER documents are automatically converted into POWDER-BASE before being processed) | An error message is returned but it doesn't recognise a POWDER or POWDER-BASE document per se |
Able to retrieve POWDER documents from the Web using HTTP | Section 3.2 | Yes | Yes | Yes |
Checks all POWDER documents used in returning a description of u for the presence of the wdr:abouthosts element |
Section 3.2 | Yes | Yes | N/A |
Ignores all POWDER documents where wdr:abouthosts is present and the host component of u is not the same as, or is not a subdomain of, at least one of the hosts listed in wdr:abouthosts |
Section 3.2 | Yes | Yes | N/A |
Returns an error if, after this filtering, a DR in an available document refers to a descriptor set defined in one that is not available | Section 3.2 | Yes | Yes | Yes |
If available through a Web interface, the parameter names u and d are used for the IRI of the resource to be described, and the data source from which the description is to be extracted, respectively | Section 3.2 | Yes | Yes | N/A |
Return error messages, such as detecting that a POWDER document is invalid, unavailable over the network, etc | Section 3.2 | Yes | Yes | Yes |
Does not, where IRI1 is in scope of a given DR and dereferencing it redirects to IRI2, automatically treat IRI2 as also being in scope of that DR. | Section 3.2 | It does not | It does not | It does not |
Feature | Section | Validator | POWDER and POWDER BASE XML Schema | POWDER Grouping Tester | Perl Processor | PHP Processor | Semantic Processor |
---|---|---|---|---|---|---|---|
An empty IRI set definition is the empty set | Section 1.2 | Reports as invalid | Yes | Reports the error | The processor returns a "not known" response | Not as such. The XSLT renders an empty IRI set as owl:Nothing (although an empty IRI set means the original POWDER doc is invalid) |
|
Enforcement of rules concerning cardinality of in/exclude: schemes, hosts, ports, exact paths, path contains, path starts with, path ends with | Section 2.1 | Yes | N/A | Reports any validation error | Reports any validation error detected against the POWDER(-BASE) XML schema | N/A | |
in/exclude: query contains | Section 2.1.2 | Yes | N/A | Yes | Yes | N/A | |
IRI/URI Canonicalisation | Section 2.1.3 | N/A | Yes | Yes | Yes | No | |
Data encoding | Section 2.1.4 | Yes | Yes | Yes | Yes | No | |
The wdr:includeiripattern and wdr:excludeiripattern Constraints |
Section 2.2 | Yes | Yes | Yes | Yes | N/A | |
The wdr:includeregex and wdr:excluderegex Constraints |
Section 2.3 | Yes | Yes | Yes | Yes | N/A | |
The wdr:includeresources and wdr:excluderesources Constraints |
Section 2.5 | Yes | Yes | Yes | Yes | N/A |
Feature | Section & relevant examples | P to P-BASE XSLT | P to P-BASE script | P-BASE to P-S XSLT |
---|---|---|---|---|
Transformation of attribution elements | Section 2.2, Example 2-1, Example 2-2 | N/A | N/A | Yes, see XSLT Test 3 |
Transformation of descriptor sets | Section 3, Example 3-1, Example 3-2 | N/A | N/A | Yes, see XSLT Test 2 and XSLT Test 3 |
Transformation of DRs with multiple IRI sets | Section 3, Example 3-3, Example 3-4 | N/A | N/A | XSLT Test 2 |
Transformation of DRs with multiple descriptor sets | Section 3.1, Example 3-5, Example 3-6 | N/A | N/A | XSLT Test 2 |
Transformation of ordered lists of DRs | Section 3.1, Example 3-7, Example 3-8 | N/A | N/A | XSLT Test 2 |
Transformation of typeof/rdf:type | Section 3.2.2, Example 3-10 | N/A | N/A | XSLT Test 5 |
Transformation of references to external descriptor sets | Section 3.2.3, Example 3-11 | N/A | N/A | Yes, see XSLT Test 7 and XSLT Test 8 |
Transformation of sha1sum, certified, displaytext, displayicon, seealso, label and comment | Section 3.2.4, Example 3-11 | N/A | N/A | Yes, see XSLT Test 3 |
Transformation of tagsets | Section 3.3, Example 3-12 | N/A | N/A | Yes, see XSLT Test 2 |
White space and list pre-processing | Section 4.1 | Yes, see XSLT Test 1 | Yes | N/A |
Transformation of in/exclude: schemes, hosts, ports, exact paths, path contains, path starts with, path ends with, resources | Section 4.1, Example 4-1 | Yes, see XSLT Test 1 | Yes | Yes, see XSLT Test 1 |
Transformation of in/exclude: query contains | Section 4.1, Example 4-2 | Yes, see XSLT Test 1 | Yes | Yes, see XSLT Test 1 |
Transformation of in/exclude: iripattern | Section 4.1, Example 4-3 | Yes, see XSLT Test 1 | Yes | Yes, see XSLT Test 1 |
Transformation of descriptor sets outwith a DR | Section 4.4, Example 4-5 | N/A | N/A | Yes, see XSLT Test 2 |
Transformation of abouthosts/aboutregex | Section 4.5, Example 4-6 | Yes, see XSLT Test 1 | Yes | Yes, see XSLT Test 7 |
u | d (value given is for a POWDER document. The transformed POWDER-S doc is used as input for the Semantic Processor) |
Perl Processor output includes | PHP Processor output includes | Semantic Processor output includes |
---|---|---|---|---|
Test 1: An IRI in scope of a DR returns the correct description (based on DR doc Example 2-1) | ||||
http://www.example.com/ | http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_01.xml | <rdf:Description rdf:about="http://www.example.com/"> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <wdrs:logo rdf:resource="http://example.org/icon.png" /> <wdrs:text>Everything on example.com is red and square</wdrs:text> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_01.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/"> <ex:color xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">red</ex:color> <ex:shape xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">square</ex:shape> <wdrs:text>Everything on example.com is red and square</wdrs:text> <wdrs:logo rdf:resource="http://example.org/icon.png"/> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_01.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://example.com/"> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_01.rdf"/> <wdrs:logo rdf:resource="http://example.org/icon.png"/> <wdrs:text>Everything on example.com is red and square</wdrs:text> <ex:shape>square</ex:shape> <ex:color>red</ex:color> </rdf:Description> |
Test 2: An IRI not in scope of a DR returns the correct 'not known to' response (based on DR doc Example 2-1) | ||||
http://www.example.org/ | http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_01.xml | <rdf:Description rdf:about="http://www.example.org/"> <wdrs:notknownto rdf:resource="http://i-sieve.com/cgi-bin/processor.cgi" /> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.org/"> <wdrs:notknownto rdf:resource="http://dawsec.dicom.uninsubria.it:80/andrea/ppp/PowderProcessor/index.php"/> </rdf:Description> |
<rdf:Description rdf:about="http://example.org/"> <wdrs:notknownto rdf:resource="http://konstant.gr/transonto/apps#powderproc"/> </rdf:Description> |
Test 3: An IRI not in scope of a DR returns the correct 'not known to' response, noting in particular that the addition of extra characters to the beginning of a string given in an includehosts element does not give an erroneous match (based on DR doc Example 2-1) | ||||
http://badexample.com/ | http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_01.xml | <rdf:Description rdf:about="http://badexample.com/"> <wdrs:notknownto rdf:resource="http://i-sieve.com/cgi-bin/processor.cgi" /> </rdf:Description> |
<rdf:Description rdf:about="http://badexample.com/"> <wdrs:notknownto rdf:resource="http://dawsec.dicom.uninsubria.it:80/andrea/ppp/PowderProcessor/index.php"/> </rdf:Description> |
<rdf:Description rdf:about="http://badexample.com/"> <wdrs:notknownto rdf:resource="http://konstant.gr/transonto/apps#powderproc"/> </rdf:Description> |
Test 4: An IRI in scope of a DR returns the correct response, in particular where u is on a sub domain of the given includehosts (based on DR doc Example 2-1) | ||||
http://foo.example.com/bar.html | http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_01.xml | <rdf:Description rdf:about="http://foo.example.com/bar.html"> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <wdrs:logo rdf:resource="http://example.org/icon.png" /> <wdrs:text>Everything on example.com is red and square</wdrs:text> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_01.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://foo.example.com/bar.html"> <ex:color xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">red</ex:color> <ex:shape xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">square</ex:shape> <wdrs:text>Everything on example.com is red and square</wdrs:text> <wdrs:logo rdf:resource="http://example.org/icon.png"/> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_01.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://foo.example.com/bar.html"> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_01.rdf"/> <wdrs:logo rdf:resource="http://example.org/icon.png"/> <wdrs:text>Everything on example.com is red and square</wdrs:text> <ex:shape>square</ex:shape> <ex:color>red</ex:color> </rdf:Description> |
Test 5: An IRI in scope of multiple DRs within a document returns the correct response (based on DR doc Example 2-2) | ||||
http://www.example.com/foo.bar | http://www.w3.org/2007/powder/Group/powder-dr/example_2_2.xml | <rdf:Description rdf:about="http://www.example.com/foo.bar"> <ex:color>red</ex:color> <ex:finish rdf:resource="http://example.org/vocab#shiny" /> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/example_2_2.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/foo.bar"> <ex:finish xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#" rdf:resource="http://example.org/vocab#shiny"/> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/example_2_2.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/foo.bar"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/xslt/example_2_2.rdf"/> <j.0:color>red</j.0:color> <j.0:finish rdf:resource="http://example.org/vocab#shiny"/> </rdf:Description> |
Test 6: An IRI in scope of one of multiple DRs within a document returns the correct response (based on DR doc Example 2-2) | ||||
http://www.example.com/page.html | http://www.w3.org/2007/powder/Group/powder-dr/example_2_2.xml | <rdf:Description rdf:about="http://www.example.com/page.html"> <ex:color>red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/example_2_2.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/page.html"> <ex:color xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/example_2_2.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/page.html"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/xslt/example_2_2.rdf"/> <j.0:color>red</j.0:color> </rdf:Description> |
Test 7a: An IRI in scope of disjoint DRs within a document returns the correct response (based on DR doc Example 2-5) | ||||
http://www.example.com/page.html | http://www.w3.org/TR/powder-dr/example_2_5.xml | <rdf:Description rdf:about="http://www.example.com/page.html"> <ex:color>red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/TR/powder-dr/example_2_5.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/page.html"> <ex:color xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/TR/powder-dr/example_2_5.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/page.html"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/xslt/example_2-5.rdf"/> <j.0:color>red</j.0:color> </rdf:Description> |
Test 7b: An IRI in scope of disjoint DRs within a document returns the correct response (based on DR doc Example 2-5) | ||||
http://www.example.com/foo/page.html | http://www.w3.org/TR/powder-dr/example_2_5.xml | <rdf:Description rdf:about="http://www.example.com/foo/page.html"> <ex:color>blue</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/TR/powder-dr/example_2_5.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/foo/page.html"> <ex:color xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">blue</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/TR/powder-dr/example_2_5.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/foo/page.html"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/xslt/example_2-5.rdf"/> <j.0:color>blue</j.0:color> </rdf:Description> |
Test 8a: An IRI in scope of one DR in an ordered list returns the correct response (based on DR doc Example 2-6) | ||||
http://example.com/foo.jpg | http://www.w3.org/TR/powder-dr/dr-example_2_06.xml | <rdf:Description rdf:about="http://example.com/foo.jpg"> <ex:color>blue</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/TR/powder-dr/dr-example_2_06.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://example.com/foo.jpg"> <ex:color xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">blue</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/TR/powder-dr/dr-example_2_06.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://example.com/foo.jpg"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_06.rdf"/> <ex:color>blue</ex:color> </rdf:Description> |
Test 8b: An IRI in scope of one DR in an ordered list returns the correct response (based on DR doc Example 2-6) | ||||
http://foo.example.com/bar.html | http://www.w3.org/TR/powder-dr/dr-example_2_06.xml | <rdf:Description rdf:about="http://foo.example.com/bar.html"> <ex:color>red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/TR/powder-dr/dr-example_2_06.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://foo.example.com/bar.html"> <ex:color xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/TR/powder-dr/dr-example_2_06.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://foo.example.com/bar.html"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_06.rdf"/> <ex:color>red</ex:color> </rdf:Description> |
Test 9a: An IRI in scope of one of multiple IRI sets in a single DR returns the correct response (based on DR doc Example 2-8) | ||||
http://example.com/foo.jpg | http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_08.xml | <rdf:Description rdf:about="http://example.com/foo.jpg"> <ex:color>red</ex:color> <ex:shape>square</ex:shape> <wdrs:logo rdf:resource="http://example.org/icon.png" /> <wdrs:text>Everything on example.com/foo, and everything on example.org/bar, is red and square</wdrs:text> <wdrs:describedby rdf:resource="/dr-" /> </rdf:Description> |
<rdf:Description rdf:about="http://example.com/foo.jpg"> <ex:color xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">red</ex:color> <ex:shape xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">square</ex:shape> <wdrs:text>Everything on example.com/foo, and everything on example.org/bar, is red and square</wdrs:text> <wdrs:logo rdf:resource="http://example.org/icon.png"/> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_08.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://example.com/foo.jpg"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_08.rdf"/> <ex:shape>square</ex:shape> <ex:color>red</ex:color> </rdf:Description> |
Test 9b: An IRI out of scope, but superficially similar to one that would be in scope of one of multiple IRI sets in a single DR returns the correct 'not known to' response (based on DR doc Example 2-8) | ||||
http://foo.example.com/bar.html | http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_08.xml | <rdf:Description rdf:about="http://foo.example.com/bar.html"> <wdrs:notknownto rdf:resource="http://i-sieve.com/cgi-bin/processor.cgi" /> </rdf:Description> |
<rdf:Description rdf:about="http://foo.example.com/bar.html"> <wdrs:notknownto rdf:resource="http://dawsec.dicom.uninsubria.it:80/andrea/ppp-new/ppp/PowderProcessor/index.php"/> </rdf:Description> |
<rdf:Description rdf:about="http://foo.example.com/bar.html"> <wdrs:notknownto rdf:resource="http://konstant.gr/transonto/apps#powderproc"/> </rdf:Description> |
Test 10a: Any IRI is described correctedly if the value of d points directly to a descriptor set using a fragment identifier (based on DR doc Example 2-9) | ||||
http://foo.example.com/page.html | http://www.w3.org/2007/powder/Group/powder-dr/example_2_9_1.xml#blue | <rdf:Description rdf:about="http://foo.example.com/page.html"> <ex:color>blue</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/example_2_9_1.xml#blue" /> </rdf:Description> |
<rdf:Description rdf:about="http://foo.example.com/page.html"> <ex:color xmlns:ex="http://example.org/vocab#" xmlns="http://www.w3.org/2007/05/powder#">blue</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/example_2_9_1.xml#blue"/> </rdf:Description> |
No - this would be at the application layer above semPP |
Test 10b: Any IRI not within the hosts listed in abouthosts returns the not known to response even if the value of d points directly to a descriptor set using a fragment identifier (based on DR doc Example 2-9) | ||||
http://foo.example.net/page.html | http://www.w3.org/2007/powder/Group/powder-dr/example_2_9_1.xml#blue | <rdf:Description rdf:about="http://foo.example.net/page.html"> <wdrs:notknownto rdf:resource="http://i-sieve.com/cgi-bin/processor.cgi" /> </rdf:Description> |
<rdf:Description rdf:about="http://foo.example.net/page.html"> <wdrs:notknownto rdf:resource="http://dawsec.dicom.uninsubria.it:80/andrea/ppp/PowderProcessor/index.php"/> </rdf:Description> |
No - this would be at the application layer above semPP |
Test 11a: Where a POWDER document contains only descriptor set and no DRs, any value of u returns the 'not known to' response, even if it is within an abouthosts restriction (based on DR doc Example 2-10, powder1.xml) | ||||
http://books.example.com/ | http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_10_1.xml | <rdf:Description rdf:about="http://books.example.com/"> <wdrs:notknownto rdf:resource="http://i-sieve.com/cgi-bin/processor.cgi" /> </rdf:Description> |
<rdf:Description rdf:about="http://books.example.com/"> <wdrs:notknownto rdf:resource="http://dawsec.dicom.uninsubria.it:80/andrea/ppp/PowderProcessor/index.php"/> </rdf:Description> |
<rdf:Description rdf:about="http://books.example.com/"> <wdrs:notknownto rdf:resource="http://konstant.gr/transonto/apps#sempp"/> </rdf:Description> |
Test 11b: A correct description is returned when a DR refers to a descriptor set in another document, (based on DR doc Example 2-10, powder2.xml) | ||||
http://books.example.com/robin/book1.html | http://i-sieve.com/powder_examples/example_2_10_2.xml | <rdf:Description rdf:about="http://books.example.com/robin/book1.html"> <wdrs:logo rdf:resource="http://education.example.org/ks1.png" /> <wdrs:text>This material is suitable for UK National Curriculum Key Stage 1</wdrs:text> <wdrs:describedby rdf:resource="http://i-sieve.com/powder_examples/example_2_10_2.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://books.example.com/robin/book1.html"> <wdrs:text>This material is suitable for UK National Curriculum Key Stage 1</wdrs:text> <wdrs:logo rdf:resource="http://education.example.org/ks1.png"/> <wdrs:describedby rdf:resource="http://i-sieve.com/powder_examples/example_2_10_1.xml#ks1"/> </rdf:Description> |
<rdf:Description rdf:about="http://books.example.com/robin/book2.html"> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_10_2.rdf"/> <rdf:type rdf:resource="http://education.example.org/powder1.rdf#ks_1"/> </rdf:Description> Issuing a slightly different command will yield the full result, i.e. <rdf:Description rdf:about="http://books.example.com/starling/book1.html"> <wdrs:logo rdf:resource="http://education.example.org/ks2.png"/> <wdrs:text>This material is suitable for UK National Curriculum Key Stage 2</wdrs:text> <rdf:type rdf:resource="http://education.example.org/powder1.rdf#ks_2"/> </rdf:Description> |
Test 11c: The specific error 101 is returned when a DR refers to a descriptor set in another POWDER document in which an abouthosts restriction places u out of scope, (See DR doc 3.1 Error Handling) | ||||
http://books.example.com/robin/book1.html | http://philarcher.org/powder_examples/example_2_10_2_bad.xml | <rdf:Description rdf:about="http://philarcher.org/powder_examples/example_2_10_2_bad.xml"> <wdrs:err_code>101</wdrs:err_code> <wdrs:data_error>A candidate resource is within the scope of a DR that refers to a descriptor set that, through an abouthosts or aboutregex restriction, cannot apply </wdrs:data_error> </rdf:Description> |
<rdf:Description rdf:about="http://philarcher.org/powder_examples/example_2_10_2_bad.xml"> <rdf:type rdf:resource="http://www.w3.org/2007/05/powder-s#Document"/> <foaf:maker rdf:resource="http://books.example.com/company.rdf#me"/> <dcterms:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2008-03-03T00:00:00</dcterms:issued> <wdrs:error_code rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">101</wdrs:error_code> <wdrs:data_error xml:lang="en">This POWDER document refers to a descriptor set not applying to the candidate resource.</wdrs:data_error> </rdf:Description> |
<rdf:Description rdf:about="file://localhost/users/parcher/dr-example_2_10_2.rdf"> <wdrs:data_error rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Description Resource refers to a descriptor set that is out of scope</wdrs:data_error> <wdrs:err_code rdf:datatype="http://www.w3.org/2001/XMLSchema#int">101</wdrs:err_code> </rdf:Description> <rdf:Description rdf:about="http://education.example.org/powder1.rdf"> <wdrs:data_error rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Description Resource refers to a descriptor set that is out of scope</wdrs:data_error> <wdrs:err_code rdf:datatype="http://www.w3.org/2001/XMLSchema#int">101</wdrs:err_code> </rdf:Description> |
Test 12: A correct description is returned when a DR contains a tag set, (based on DR doc Example 2-13) | ||||
http://www.example.com/page.html | http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_13.xml | <rdf:Description rdf:about="http://www.example.com/page.html"> <wdrs:tag>London</wdrs:tag> <wdrs:tag>Swiss Re</wdrs:tag> <wdrs:tag>gherkin</wdrs:tag> <rdfs:seeAlso rdf:resource="http://photo.example.com/gherkin.jpg" /> <rdfs:label>Tags for the London landmark</rdfs:label> <rdfs:comment>Tags are linked to specific resources that contextualize them</rdfs:comment> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_13.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/page.html"> <rdfs:label>Tags for the London landmark</rdfs:label> <wdrs:tag>London</wdrs:tag> <wdrs:tag>Swiss Re</wdrs:tag> <wdrs:tag>gherkin</wdrs:tag> <rdfs:seeAlso rdf:resource="http://encyclopaedia.example.com/gherkin.html"/> <rdfs:seeAlso rdf:resource="http://photo.example.com/gherkin.jpg"/> <rdfs:comment>Tags are linked to specific resources that contextualize them</rdfs:comment> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_13.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/page.html"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_13.rdf"/> <rdfs:comment>Tags are linked to specific resources that contextualize them</rdfs:comment> <rdfs:label>Tags for the London landmark</rdfs:label> <rdfs:seeAlso rdf:resource="http://photo.example.com/gherkin.jpg"/> <rdfs:seeAlso rdf:resource="http://encyclopaedia.example.com/gherkin.html"/> <wdrs:tag>gherkin</wdrs:tag> <wdrs:tag>Swiss Re</wdrs:tag> <wdrs:tag>London</wdrs:tag> </rdf:Description> |
Test 13a: A correct description is returned when a POWDER document contains several different elements, included descriptors etc, (based on DR doc Example 2-14) | ||||
http://movie.example.com/after9pm/movie1.mpg | http://philarcher.org/powder/dr/dr-example_2_14.xml | <rdf:Description rdf:about="http://movie.example.com/after9pm/movie1.mpg"> <ex:agemin>18</ex:agemin> <wdrs:logo rdf:resource="http://authority.example.org/adult.png" /> <wdrs:text>Adults Only</wdrs:text> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite" /> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_14.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://movie.example.com/after9pm/movie1.mpg"> <ex:agemin xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">18</ex:agemin> <wdrs:text>Adults Only</wdrs:text> <wdrs:logo rdf:resource="http://authority.example.org/adult.png"/> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite"/> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_14.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://movie.example.com/after9pm/movie1.mpg"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_14.rdf"/> <wdrs:logo rdf:resource="http://authority.example.org/adult.png"/> <wdrs:text>Adults Only</wdrs:text> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite"/> <ex:agemin>18</ex:agemin> </rdf:Description> |
Test 13b: A correct description is returned when a POWDER document contains several different elements, included descriptors etc, (based on DR doc Example 2-14) | ||||
http://movie.example.com/movie2.mpg | http://philarcher.org/powder/dr/dr-example_2_14.xml | <rdf:Description rdf:about="http://movie.example.com/movie2.mpg"> <ex:agemin>0</ex:agemin> <wdrs:logo rdf:resource="http://authority.example.org/all.png" /> <wdrs:text>All Ages</wdrs:text> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite" /> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_14.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://movie.example.com/movie2.mpg"> <ex:agemin xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">0</ex:agemin> <wdrs:text>All Ages</wdrs:text> <wdrs:logo rdf:resource="http://authority.example.org/all.png"/> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite"/> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_14.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://movie.example.com/movie2.mpg"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_14.rdf"/> <wdrs:logo rdf:resource="http://authority.example.org/all.png"/> <wdrs:text>All Ages</wdrs:text> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite"/> <ex:agemin>0</ex:agemin> </rdf:Description> |
Test 13c: A correct description is returned when a POWDER document contains several different elements, included descriptors etc, (based on DR doc Example 2-14) | ||||
http://movie.example.com/latest/reviews.html | http://philarcher.org/powder/dr/dr-example_2_14.xml | <rdf:Description rdf:about="http://movie.example.com/latest/reviews.html"> <ex:agemin>0</ex:agemin> <wdrs:logo rdf:resource="http://authority.example.org/all.png" /> <wdrs:text>All Ages</wdrs:text> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite" /> <wdrs:tag>New Releases</wdrs:tag> <wdrs:tag>What's Hot</wdrs:tag> <rdfs:seeAlso rdf:resource="http://cinema.example.com/nowplaying/" /> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_14.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://movie.example.com/latest/reviews.html"> <wdrs:tag>New Releases</wdrs:tag> <wdrs:tag>What's Hot</wdrs:tag> <rdfs:seeAlso rdf:resource="http://cinema.example.com/nowplaying/"/> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_14.xml"/> </rdf:Description> <rdf:Description rdf:about="http://movie.example.com/latest/reviews.html"> <ex:agemin xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">0</ex:agemin> <wdrs:text>All Ages</wdrs:text> <wdrs:logo rdf:resource="http://authority.example.org/all.png"/> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite"/> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_14.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://movie.example.com/latest/reviews.html"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/dr/dr-example_2_14.rdf"/> <wdrs:logo rdf:resource="http://authority.example.org/all.png"/> <wdrs:text>All Ages</wdrs:text> <rdfs:seeAlso rdf:resource="http://cinema.example.com/nowplaying/"/> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite"/> <ex:agemin>0</ex:agemin> <wdrs:tag>What's Hot</wdrs:tag> <wdrs:tag>New Releases</wdrs:tag> </rdf:Description> |
Test 14: A correct description is returned when a descriptor set includes an XML Literal (based on DR doc Example 2-15) | ||||
http://www.example.com/ | http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_15.xml | <rdf:Description rdf:about="http://www.example.com/"> <ex:color rdf:parseType="Literal"> <ex2:hex>ff0000</ex2:hex> <ex2:red>255</ex2:red> <ex2:green>0</ex2:green> <ex2:blue>0</ex2:blue> </ex:color> <wdrs:logo rdf:resource="http://example.org/icon.png" /> <wdrs:text>Everything on example.org is red</wdrs:text> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_15.xml" /> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/"> <ex:color xmlns:ex="http://example.org/vocab#" xmlns:ex2="http://example.org/palette#" xmlns="http://www.w3.org/2007/05/powder#" rdf:parseType="Literal"> <ex2:hex>ff0000</ex2:hex> <ex2:red>255</ex2:red> <ex2:green>0</ex2:green> <ex2:blue>0</ex2:blue> </ex:color> <wdrs:text>Everything on example.org is red</wdrs:text> <wdrs:logo rdf:resource="http://example.org/icon.png"/> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_15.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/"> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-dr/dr-example_2_15.rdf"/> <wdrs:logo rdf:resource="http://example.org/icon.png"/> <wdrs:text>Everything on example.com is red</wdrs:text> <ex:color rdf:parseType="Literal"> <ex2:hex xmlns:ex2="http://example.org/palette#">ff0000</ex2:hex> <ex2:red xmlns:ex2="http://example.org/palette#">255</ex2:red> <ex2:green xmlns:ex2="http://example.org/palette#">0</ex2:green> <ex2:blue xmlns:ex2="http://example.org/palette#">0</ex2:blue> </ex:color> </rdf:Description> |
Test 15: A suitable error message is returned when a POWDER document is invalid | ||||
http://www.example.com/ | http://philarcher.org/powder_examples/example_2_1_alien_IRI_element.xml | <rdf:Description rdf:about="http://philarcher.org/powder_examples/example_2_1_alien_IRI_element.xml"> <wdrs:err_code>103</wdrs:err_code> <wdrs:data_error>Data is not a valid POWDER or POWDER-BASE document (<code><ex:badidea></code> is not a valid element within an IRI set (1st <code><iriset></code>).)</wdrs:data_error> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/"> <wdrs:notknownto rdf:resource="http://dawsec.dicom.uninsubria.it:80/andrea/ppp-new/ppp/PowderProcessor/index.php"/> </rdf:Description> <rdf:Description rdf:about="http://philarcher.org/powder_examples/example_2_1_alien_IRI_element.xml"> <wdrs:error_code rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">106</wdrs:error_code> <wdrs:data_error xml:lang="en">This POWDER document does not apply to the candidate resource.</wdrs:data_error> </rdf:Description>[See Note] |
No - this would be at the application layer above semPP |
Test 16: An empty IRI set is treated as the empty set | ||||
http://www.example.com/ | http://philarcher.org/powder_examples/example_2_1_empty_iriset.xml | <rdf:Description rdf:about="http://philarcher.org/powder_examples/example_2_1_empty_iriset.xml"> <wdrs:err_code>103</wdrs:err_code> <wdrs:data_error>Data is not a valid POWDER or POWDER-BASE document (1st <code><iriset></code> is empty)</wdrs:data_error> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/"> <wdrs:notknownto rdf:resource="http://dawsec.dicom.uninsubria.it:80/andrea/ppp-new/ppp/PowderProcessor/index.php"/> </rdf:Description> <rdf:Description rdf:about="http://philarcher.org/powder_examples/example_2_1_empty_iriset.xml"> <wdrs:error_code rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">106</wdrs:error_code> <wdrs:data_error xml:lang="en">This POWDER document does not apply to the candidate resource.</wdrs:data_error> </rdf:Description>[See Note] |
A POWDER doc with an empty IRI set is invalid. However, the XSLT will render such an IRI set as the owl:Nothing class to achieve the desired result. See XSLT Test 10. |
Note: Test 15 and 16 rely on the processor validating the POWDER document. The particular validation errors in these tests are not detectable by the XML schema and therefore not detected in the PHP Processor. However, it does return a 'not known to' repsonse so that, importantly, an incorrect description is not returned.
Feature | POWDER Document | POWDER-BASE Document (from POWDER to POWDER-BASE XSLT) | POWDER-S Document (from POWDER-BASE to POWDER-S XSLT) | Comments |
---|---|---|---|---|
XSLT Test 1 IRI constraint transformation as defined in the Formal Semantics doc |
iriset_example.xml | iriset_example_base.xml | iriset_example.rdf | All IRI set constraints converted to correct regular expression (P to P-BASE) and thence to property restrictions in the OWL class |
XSLT Test 2 Numbering of IRI sets, descriptor sets, the exclusion of previous IRI sets in DRs in ordered lists etc. |
multi_example2.xml | multi_example2_base.xml | multi_example2.rdf | The unique identification of IRI sets and descriptor sets, and the correct sub class relationship assertion, puts significant demands on the XSLT. This example contains a descriptor set that is not part of any DR, two ordered lists and one of the DRs has two IRI sets. |
XSLT Test 3 POWDER-specific elements other than those in the IRI set |
powder_elements.xml | powder_elements_base.xml | powder_elements.rdf | Attribution elements are all correctly transformed. Note the creation of the Class with a nodeID of
aboutset which is derived from abouthosts aboutregex .
The more element is transformed into a separate rdf:Description block but
is sematically equivalent to the same triple being expressed within the rest of the ontology headers.
Elements like typeof and comment are correctly transformed. |
XSLT Test 4 Elements such as display text support xml:lang attributes. |
multi_lingual.xml | multi_lingual_base.xml | multi_lingual.rdf | All seems well with this. xml:lang is supported in displaytext, tag, comment and label. |
XSLT Test 4a ITS Tag Set can be used in POWDER docs without affecting the RDF graph |
multi_lingual2.xml | multi_lingual2_base.xml | multi_lingual2.rdf | The ITS tags are not included in the POWDER-S file |
XSLT Test 5 POWDER Flexibility (Example 2-14 in the DR doc). |
dr-example_2_14.xml | Example_2-14_Base.xml | Example_2-14_S.rdf | Note the use of owl:equivalent class to handle the include attribute of a descriptor set. |
XSLT Test 6 Repeating Tests 13a - 13c with the output of the two XSLTs performed on example 2-14, and the Semantic processor gives output that includes: <rdf:Description rdf:about="http://movie.example.com/after9pm/movie1.mpg"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/xslt/Example_2-14_S.rdf"/> <wdrs:text>Adults Only</wdrs:text> <wdrs:logo rdf:resource="http://authority.example.org/adult.png"/> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite"/> <j.1:agemin>18</j.1:agemin> </rdf:Description> <rdf:Description rdf:about="http://movie.example.com/latest/reviews.html"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/xslt/Example_2-14_S.rdf"/> <rdfs:seeAlso rdf:resource="http://cinema.example.com/nowplaying/"/> <wdrs:text>All Ages</wdrs:text> <wdrs:logo rdf:resource="http://authority.example.org/all.png"/> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite"/> <j.1:agemin>0</j.1:agemin> <wdrs:tag>What's Hot</wdrs:tag> <wdrs:tag>New Releases</wdrs:tag> </rdf:Description> <rdf:Description rdf:about="http://movie.example.com/movie2.mpg"> <wdrs:describedby rdf:resource="http://philarcher.org/powder/xslt/Example_2-14_S.rdf"/> <wdrs:text>All Ages</wdrs:text> <wdrs:logo rdf:resource="http://authority.example.org/all.png"/> <rdf:type rdf:resource="http://trust.example.org/vocab#trustedsite"/> <j.1:agemin>0</j.1:agemin> </rdf:Description> |
||||
XSLT Test 7 Pred-defined descriptor sets |
dr-example_2_10_1.xml | example_2_10_1_base.xml | example_2_10_1_S.rdf | Note that the descriptor classes have an rdf:ID attribute cf. rdf:nodeID. The aboutset resriction is correctly applied |
XSLT Test 8 Referring to pre-defined descriptorsets |
dr-example_2_10_2.xml | example_2_10_2_base.xml | example_2_10_2_S.rdf | Note the use of owl:equivalent class to link the internally identified classes to the external ones. Repeats of test 11 using this data confirm the veracity of the transformation |
XSLT Test 9 Processor Tests 5, 6, 7a and 7b were carried out using a POWDER-S file generated from the XSLTs. |
||||
XSLT Test 10 Empty IRI sets are transfored into owl:Nothing |
empty_iriset_base.xml | empty_iriset.rdf | The input file is invalid as a POWDER document but empty IRI sets can physically exist. The grouping doc asserts that an empty IRI set it is to be interpreted as the empty set (see end of Section 1.2). |
Reference | Test | Files | Check |
---|---|---|---|
Positive Parser Tests | |||
Positive Parser Test 001 | A valid POWDER document must include exactly one attribution element | pos001.xml | Validator output |
Positive Parser Test 002 | The required attribution element of a valid POWDER document may contain exactly one issued element | pos002.xml | Validator output |
Positive Parser Test 003 | The required attribution element of a valid POWDER document may contain exactly one validfrom element and may contain exactly one validuntil element | pos003.xml | Validator output |
Positive Parser Test 004 | The required attribution element of a valid POWDER document may contain exactly one abouthosts elements | pos004.xml | Validator output |
Positive Parser Test 005 | A valid POWDER document may contain any number of dr elements | pos005.xml | Validator output |
Positive Parser Test 006 | A valid POWDER document may contain an ol element which contains an arbitrarily sized ordered set of dr elements | pos006.xml | Validator output |
Positive Parser Test 007 | A valid POWDER document may contain descriptorset elements not within a dr element | pos006.xml | Validator output |
Positive Parser Test 008 | If a valid POWDER document contains dr elements, they must include one or more iriset elements | pos008.xml | Validator output |
Positive Parser Test 009 | A valid POWDER document may contain descriptorset elements that point to externally defined descriptor sets | pos009.xml | Validator output |
Positive Parser Test 010 | A valid POWDER document may contain dr elements that contain more than one descriptorset elements | pos010.xml | Validator output |
Positive Parser Test 011 | A valid POWDER document may contain descriptorsets elements with a nodeattibute that can subsequently be referenced in one or more descriptorset elements in the document | pos011.xml | Validator output |
Positive Parser Test 012 | A valid POWDER document may contain descriptorset elements that contain XML elements | pos012.xml | Validator output |
Positive Parser Test 013 | An iriset element MUST contain zero or exactly one occurence of the includeschemes element | pos013.xml | Validator output |
Positive Parser Test 014 | An iriset element MUST contain zero or exactly one occurence of the includehosts element | pos014.xml | Validator output |
Positive Parser Test 015 | An iriset element MUST contain zero or exactly one occurence of the includeexactpaths element | pos015.xml | Validator output |
Positive Parser Test 016 | An iriset element may contain any number of includepathcontains elements | pos016.xml | Validator output |
Positive Parser Test 017 | An iriset element MUST contain zero or exactly one occurence of the includepathbeginswith element | pos017.xml | Validator output |
Positive Parser Test 018 | An iriset element MUST contain zero or exactly one occurence of the includepathendswith element | pos018.xml | Validator output |
Positive Parser Test 019 | An iriset element MUST contain zero or exactly one occurence of the includeports element | pos019.xml | Validator output |
Positive Parser Test 020 | An iriset element may contain zero or exactly one occurence of the includequerycontains element | pos020.xml | Validator output |
Positive Parser Test 021 | An iriset element may contain zero or more occurences of the includeregex element | pos021.xml | Validator output |
Positive Parser Test 022 | An iriset element may contain zero or exactly one occurence of the includeresources element | pos022.xml | Validator output |
Positive Parser Test 023 | An iriset element may contain zero or exactly one occurence of the includeiripattern element | pos023.xml | Validator output |
Negative Parser Tests | |||
Negative Parser Test 001 | If a POWDER document does not include exactly one attribution element, it is not a valid POWDER document | neg001.xml | Validator output |
Negative Parser Test 002 | If a POWDER document contains an attribution element that does not include an issuedby element, it is not a valid POWDER document | neg002.xml | Validator output |
Negative Parser Test 003 | If a POWDER document contains at least one dr element that does not include an iriset element, it is not a valid POWDER document | neg003.xml | Validator output |
Negative Parser Test 004 | If a POWDER document contains a dr element that has an empty iriset element, it is not a valid POWDER document | neg004.xml | Validator output |
Negative Parser Test 005 | If a POWDER document contains a descriptorset element that contains a tag element, it is not a valid POWDER document | neg005.xml | Validator output |
Negative Parser Test 006 | If a POWDER document contains neither a descriptorset element nor a tagset element, it is not a valid POWDER document | neg006.xml | Validator output |
GRDDL Tests | |||
See XSLT Tests above | |||
Locator Tests | |||
Locator Test 001 | A (X)HTML document can point to a POWDER document by using the LINK element within its HEAD section | loc001.html. Should locate loc001.xml | Output from 3P includes:
<rdf:Description rdf:about="http://www.w3.org/2007/powder/Group/powder-test/tests/locate_tests/loc001.xml"> <wdrs:error_code rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">106</wdrs:error_code> <wdrs:data_error xml:lang="en">This POWDER document does not apply to the candidate resource.</wdrs:data_error> </rdf:Description> i.e. correct file is found, even though example.com is used as the includehosts, so the description doesn't actually apply. |
Locator Test 002 | An agent can discover the POWDER document associated with a (X)HTML document by inspecting the HTTP response headers when requesting the (X)HTML document | loc002.html. Should locate loc002.xml which describes it. | Output from 3P includes:
<rdf:Description rdf:about="http://www.w3.org/2007/powder/Group/powder-test/tests/locate_tests/loc002.html"> <ex:color xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#">green</ex:color> <wdrs:text>POWDER file located through HTTP Link</wdrs:text> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-test/tests/locate_tests/loc002.xml"/> </rdf:Description> |
Locator Test 003 | A document expressed in a format that supports RDF properties can use the wdrs:described property to link a resource to a POWDER document | loc003.html. An RDFa agent should locate loc003a.xml and loc003b.xml | Output from the RDFa Distiller includes:
<rdf:Description rdf:about="http://monarchy.example.org/divine_right.html"> <wdrs:describedBy rdf:resource="http://www.w3.org/2007/powder/Group/powder-test/tests/locate_tests/loc003b.xml"/> </rdf:Description> <rdf:Description rdf:about="http://www.w3.org/2007/powder/Group/powder-test/tests/locate_tests/page.html"> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-test/tests/locate_tests/loc003b.xml"/> </rdf:Description> <rdf:Description rdf:about="http://www.w3.org/2007/powder/Group/powder-test/tests/locate_tests/loc003.html"> <wdrs:describedBy rdf:resource="http://www.w3.org/2007/powder/Group/powder-test/tests/locate_tests/loc003a.xml"/> </rdf:Description> |
Locator Test 004 | The wdrs:described property can be used to associate descriptions with feed entries | loc004_atom.xml. An ATOM agent should locate loc004a.xml and loc004b.xml | Output
from W3C ATOM Validator includes:
line 7, column 72: Unregistered link relationship: describedby The |
Data Extraction Tests | |||
See POWDER Processor Tests and Results above | |||
Canonicalization Tests | |||
Canon Test 001 | Both http://www.example.com/images/Céline.jpg http://www.example.com/images/C%C3%A9line.jpg will match either POWDER data file | match001a.xml or match001b.xml | The output from the processor from any of: é in IRI with %encoded data, %encoded IRI and data, %encoded IRI and é in data, é in both IRI and data includes: <rdf:Description rdf:about="http://www.example.com/images/Céline.jpg"> <ex:color>red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-test/tests/canon_tests/match001b.xml" /> </rdf:Description> |
Canon Test 002 | http://example.com/my%20doc.doc will be unaffected by the canonicalization process and will match the data which also includes a %20 character. | match002.xml | The output from the processor includes: <rdf:Description rdf:about="http://example.com/my%20doc.doc"> <ex:color>red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-test/tests/canon_tests/match002.xml" /> </rdf:Description> |
Canon Test 003 | http://example.com/foo/his%2Fhers/image.png will be unaffected by the canonicalization process and will match the data which also includes a reserved character. | match003.xml | The output from the processor includes: <rdf:Description rdf:about="http://example.com/foo/his%2Fhers/image.png"> <ex:color>red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-test/tests/canon_tests/match003.xml" /> </rdf:Description> |
Canon Test 004 | Scheme and host matching is case-insensitive and are normalised to ASCII lower case before matching. Paths are unaffected. Therefore httpS://EXAMPLE.com/FOO/Capital.svg will match 004 | match004.xml | The output from the processor includes: <rdf:Description rdf:about="https://example.com/FOO/Capital.svg"> <ex:color>red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-test/tests/canon_tests/match004.xml" /> </rdf:Description> |
Canon Test 005 | Applying the ToASCII operation leads to a match for both http://www.sigmaσ.example.org/images/Céline.jpg and http://www.xn--sigma-kde.example.org/images/Céline.jpg with either POWDER document. | match005a.xml match005b.xml | The output from the processor with punycode in both the IRI and data, punycode in IRI and native characters in the data, native characters in the IRI and punycode in the data, native characters in both. includes: <rdf:Description rdf:about="http://www.xn--sigma-kde.example.org/images/Céline.jpg"> <ex:color>red</ex:color> <wdrs:describedby rdf:resource="http://www.w3.org/2007/powder/Group/powder-test/tests/canon_tests/match005b.xml" /> </rdf:Description> |
The test suite includes a lot of external data files and the manifest files. This script fetches and parses the manifest files and then checks that all the files are in place.