Запрос SPARQL с использованием dotNetRDF возвращает правильное количество результатов, но с пустыми значениями, почему? - PullRequest
0 голосов
/ 21 января 2019

Я проверил мой запрос SPARQL на онтологию пиццы в протеже, и запрос работает нормально.Проблема в том, что я пытаюсь выполнить один и тот же запрос к одному и тому же файлу онтологии с помощью dotNetRDF.Запрос возвращает правильное количество результатов, но все они кажутся пустыми.

Кто-нибудь может указать, в чем здесь проблема?

Результаты запроса с использованием Protege:

enter image description here

Запросрезультаты с использованием dotNetRDF:

enter image description here

Вот мой код на C #:

OntologyGraph ontGraph = new OntologyGraph();
FileLoader.Load(ontGraph, "PizzaOntology.owl");
ontGraph.BaseUri = null;

#region SPARQL query
SparqlParameterizedString queryString = new SparqlParameterizedString();

queryString.Namespaces.AddNamespace("rdf", new Uri("http://www.w3.org/1999/02/22-rdf-syntax-ns#"));
queryString.Namespaces.AddNamespace("owl", new Uri("http://www.w3.org/2002/07/owl#"));
queryString.Namespaces.AddNamespace("rdfs", new Uri("http://www.w3.org/2000/01/rdf-schema#"));
queryString.Namespaces.AddNamespace("xsd", new Uri("http://www.w3.org/2001/XMLSchema#"));
queryString.Namespaces.AddNamespace("ont", new Uri("http://www.semanticweb.org/ontologies/pizza.owl#"));

queryString.CommandText = "SELECT ?subject";
queryString.CommandText += "WHERE { ?subject rdfs:subClassOf ont:PizzaBase }";

SparqlQueryParser parser = new SparqlQueryParser();
SparqlQuery query = parser.ParseFromString(queryString);
#endregion


#region Query Processor
TripleStore store = new TripleStore();
store.Add(ontGraph);

InMemoryDataset ds = new InMemoryDataset(store, true);
ISparqlQueryProcessor processor = new LeviathanQueryProcessor(ds);

object results = processor.ProcessQuery(query);
if (results is SparqlResultSet)
{
    //Print out the Results
    SparqlResultSet rset = (SparqlResultSet)results;
    foreach (SparqlResult result in rset)
    {
        Console.WriteLine(result.ToString());
    }
}
#endregion
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...