Basic SPARQL question : foaf <-> modulus query matching with blank nodes

Hi.

This may be a basic SPARQL query FAQ, so apologies in advance if I'm
asking for obvious question.


I'm trying to fetch remote FOAF/WebID profiles and try and query for the
profile's certs modulus with a SPARQL query like :

PREFIX cert: <http://www.w3.org/ns/auth/cert#> 
SELECT ?s ?m WHERE {?s cert:key ?k. 
                    ?k cert:modulus ?m.}

I'm not very experienced in SPARQL, but I belived this should provide
results for any WebID.

But trying with Virtuoso (actually through PHP code over the Erfurt
framework [0], or directly in the Virtuoso conductor), I sometimes get
results, sometimes not.

The following WebID matches :
...
<http://www-public.it-sudparis.eu/~berger_o/foaf.rdf#me>
    a :Person ;
    cert:key <http://www-public.it-sudparis.eu/~berger_o/foaf.rdf#mecert> ;
    :familyName "Berger" ;
    :firstName "Olivier" ;

<http://www-public.it-sudparis.eu/~berger_o/foaf.rdf#mecert>
    a cert:RSAPublicKey ;
    cert:exponent "65537"^^<xsd:int> ;
    cert:identity <http://www-public.it-sudparis.eu/~berger_o/foaf.rdf#me> ;
    cert:modulus "c30d5f361bc40ecb46dee50b85f4c1b3aa44239e22f90a54fa9f5e7a3643798d89693bc401b8a22c60eabb31c6a59c34eda85bf93713632f468a34fabb88eda53a3999570ac7a51ff2f24582b9ff27e575d7dfa2685a0211081e3323a801a9fe403434c5ca40014cade3500a2b22eb402da533ceef01d9a17236508602211d9013c36c6b850ed8bcec021ddc91763f6a0fef922d888f59ebed6ccd0c0dd7efa1e38c06ae338f2795a15f3a1cc97a94a3bea3da8265704e88db40b45d034681543595b97bd9304f831cd9b5ffdc157123d42c3bf42105964c8c34bf04607c5ef90c668d8fbf49a3a329518468813e32e2e2e08150f2d69399b9108ea43b9900bb"^^<xsd:hexBinary> .

Whereas that one doesn't :
...
<https://my-profile.eu/people/obergix_test1/card#me>
    a foaf:Person ;
    cert:key [
        a cert:RSAPublicKey ;
        cert:exponent "65537"^^<http://www.w3.org/2001/XMLSchema#int> ;
        cert:modulus "cae14b9f77370ef213596a9d82186bded5ab976f3b4ff8c4be384325c709679948c8c6d8e9a0c60b46d60e172ef410279ff7a331e0641b958ffa6b40190a0771fe4bbc20a781684a7cfcb1a0fb82262a15f35ab1b1150de270ac60e8ed645ac077f6e91de94b48284040f9262b051f008389f28738922b3f11ccbc593d6d98feccb0497ce57b8f6508cf0b77bc445b5df9f2e5e08eef1649ad5ea6d685a8752cd0bf78b9a58d5453a9267e37c3a7f3e7b6718419755e5df16c3d6c9837c1cdd39c27761126d5cf1ef50d8654ecacc9d7213a398a81de439d406a495ba0a8497e63bfb0cf02e25f9115cb5254fb8c2755e90e91ed72b2ca5a9402bf5aedb521ab"^^<http://www.w3.org/2001/XMLSchema#hexBinary>
    ] ;
    foaf:familyName "Berger" ;
    foaf:givenName "Olivier" .


The difference is that in the first one, I explicitely gave a URI to my
cert.

Aren't blank nodes supposed to serve in graph construction in SPARQL
queries ? Have I hit a virtuoso limitation ?

I think I'll try with the MySQL backend option of Erfurt to try and see
if (it works and) I hit a similar behaviour.

Thanks in advance for your advices.

Best regards,

[0] http://erfurt-framework.org/
-- 
Olivier BERGER 
http://www-public.it-sudparis.eu/~berger_o/ - OpenPGP-Id: 2048R/5819D7E8
Ingenieur Recherche - Dept INF
Institut Mines-Telecom, Telecom SudParis, Evry (France)

Received on Wednesday, 18 July 2012 09:18:55 UTC