2014-05-16 4 views
1

Je travaille sur le projet de l'ontologie en ce que j'écris une requête sparql que requête sparql fonctionne très bien dans protege 4.3 mais quand j'utilise cette requête sparql dans android je reçois exception s'il vous plaît suggérer une solution comment puis-je lient une utilisation dans Androidcomment utiliser bind dans sparql

ma requête SPARQL est

select ?_Email ?_ind ?_ind1 where { 

    ?_ind rdf:type my:Accomodation . 
    ?_ind my:hasStarRating ?_Email. 
    ?_ind my:hasType ?_ind1. 

    bind(str(?_Email) as ?_Email) 
    bind(strafter(str(?_ind),str(my:)) as ?_ind ) 
    bind(str(?_ind1) as ?_ind1) 
} 

qui montre l'exception

Caused by: com.hp.hpl.jena.query.QueryParseException: Lexical error at line 1, column 590. Encountered: " " (32), after : "bind" 

Répondre

1

Vous semblez utiliser le androjena. Cela utilise une ancienne version de Jena qui n'a pas BIND.

Et pour BIND, il doit s'agir d'une nouvelle variable.

bind(str(?_Email) as ?_Email2) 

Vous pouvez avoir plus de succès avec LET si vous utilisez la syntaxe étendue de ARQ (ce qui a été autour plus, ce n'est pas standard SPARQL 1.1).

LET(?_Email2 := str(?_Email)) 

sinon contacter le projet androjena.