In my webid validation code, I’m asking sparql to evaluate the following query
PREFIX : <http://www.w3.org/ns/auth/cert#>
ASK {
<http://yorkporc.blogspot.com/2011/11/bob.html#me> :key [
:modulus "c0 e6 31 e8 37 40 7b bf 6c e5 53 92 57 78 25 1b 7e 1b 5b f4 62 b8 cf 71 1e c7 b7 dc 72 44 99 66 f2 de 4f 5b 34 a8 0d 86 52 03 a6 d8 0d 15 fb 86 e3 41 bd 2f 27 41 84 72 d9 b3 59 11 7a 7f a6 91 2f 82 3a ea 19 f6 af 91 1a 12 8d 2d 42 0d 67 eb 02 aa e2 85 99 9c 1d f2 56 32 82 61 ec 9f b1 64 05 04 26 ee d2 8f 5c 07 90 01 60 26 f0 cc f1 3b 2c 20 60 bf 2a a8 f6 03 e5 4d df cf c1 73 46 2d "^^xsd:hexBinary;
:exponent 65537;
] .
}
The query was formulated by simple string substitution, where a particular (quoted) formatting of the hex of the modulus from the cert was inserted into a string template.
I’m going to have to assume that sparql engine’s implementation of an ASK query is correct, and that it takes into consideration the “^^xsd:hexBinary” – in the manner required. Ive no idea about these topics, and will take them on faith.
The graph against which the query is to be evaluated is obtained from morph. One sees the store of statements in the debugger, after parsing the result of morphing my RDFa webid profile. Clearly the statement
_:arc15efb2 <http://www.w3.org/ns/auth/cert#modulus> “c0 e6 31 e8 37 40 7b bf 6c e5 53 92 57 78 25 1b 7e 1b 5b f4 62 b8 cf 71 1e c7 b7 dc 72 44 99 66 f2 de 4f 5b 34 a8 0d 86 52 03 a6 d8 0d 15 fb 86 e3 41 bd 2f 27 41 84 72 d9 b3 59 11 7a 7f a6 91 2f 82 3a ea 19 f6 af 91 1a 12 8d 2d 42 0d 67 eb 02 aa e2 85 99 9c 1d f2 56 32 82 61 ec 9f b1 64 05 04 26 ee d2 8f 5c 07 90 01 60 26 f0 cc f1 3b 2c 20 60 bf 2a a8 f6 03 e5 4d df cf c1 73 46 2d”^^<http://www.w3.org/2001/XMLSchema#hexBinary> .
has as object of the mod predicate a string whose format, like the format of the cert modulus we inserted into the ASK statement, is lower case hex, with space separators. But, in contrast to the hex I build from the cert, there is no final space. Does it matter!!?
Now, the Ask statement returns false. Why?
Is it due to the fact minor formatting differences of the strings? Is it because statement 26 above has an _arc… value as its subject rather than my webid URI?
Should not the sparql query engine be sorting this all out? If not, what does one do to use the ASK query from the webid spec, given such a graph? Is there someway of canonicalizing or minimizing nodes in the graph, so the ASK would work?