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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/dr-example_2_01.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://example.com/"> <wdrs:describedby rdf:resource="http://www.w3.org/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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="http://www.w3.org/TR/2008/WD-powder-dr-20081114/dr-example_2_08.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#">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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/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/TR/2008/WD-powder-dr-20081114/dr-example_2_15.xml"/> </rdf:Description> |
<rdf:Description rdf:about="http://www.example.com/"> <wdrs:describedby rdf:resource="http://www.w3.org/TR/2008/WD-powder-dr-20081114/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). |