Ce que j'essaie de faire est de lister toutes les classes en utilisant la requête suivante dans un fichier owl que j'ai créé en utilisant Protege 5 et qui a "foaf" comme ontologie importée.La requête SPARQL dans dotnetrdf ne demande pas l'ontologie importée
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?subject ?label ?comment
WHERE
{
?subject a owl:Class
OPTIONAL { ?subject a rdfs:Class }
OPTIONAL { ?subject rdfs:label ?label }
OPTIONAL { ?subject rdfs:comment ?comment}
}
Le problème est, quand je lance cette requête dans l'onglet SPARQL de Protege je reçois toutes les classes définies dans l'espace de noms « FOAF » mais lorsque je tente d'exécuter la même requête en utilisant dotnetrdf api en C# Je ne comprends pas le même résultat.
Après mon code en C#
var g = new Graph();
g.LoadFromFile(owlFile, new TurtleParser());
ISparqlDataset ds = new InMemoryDataset(g);
LeviathanQueryProcessor processor = new LeviathanQueryProcessor(ds);
var queryParser = new SparqlQueryParser();
var parmeterizedString = new SparqlParameterizedString(query);
parmeterizedString.SetLiteral("value", searchQuery);
return processor.ProcessQuery(queryParser.ParseFromString(parmeterizedString.ToString())) as SparqlResultSet;
Qu'est-ce que je fais mal?
'parmeterizedString.SetLiteral (" value ", searchQuery);' - il n'y a pas de valeur? Dans la requête. – AndyS