Запрос файла RDF в RDFDOTNET - PullRequest
1 голос
/ 10 января 2012

Я запрашиваю rdf-файл, используя библиотеку rdfdotnet

Вот мой код

//Define your Graph here - it may be better to use a QueryableGraph if you plan
//on making lots of Queries against this Graph as that is marginally more performant
IGraph g = new Graph();

//Load some data into your Graph using the LoadFromFile() extension method
g.LoadFromFile("C:/Users/admin/Desktop/current/Semantic/test.rdf");

//Use the extension method ExecuteQuery() to make the query against the Graph
try
{
    String q = " Prefix u:<http://localhost:49682/Semantic/test.rdf> SELECT * WHERE {?x1 u:age ?x2}";
        Object results = g.ExecuteQuery(q);

        if (results is SparqlResultSet)
        {
            //SELECT/ASK queries give a SparqlResultSet
            SparqlResultSet rset = (SparqlResultSet)results;
            foreach (SparqlResult r in rset)
            {
                //Do whatever you want with each Result
            }
        }
        else if (results is IGraph)
        {
            //CONSTRUCT/DESCRIBE queries give a IGraph
            IGraph resGraph = (IGraph)results;
            foreach (Triple t in resGraph.Triples)
            {
                //Do whatever you want with each Triple
            }
        }
        else
        {
            //If you don't get a SparqlResutlSet or IGraph something went wrong 
            //but didn't throw an exception so you should handle it here
            Console.WriteLine("ERROR");
        }
    }
    catch (VDS.RDF.Query.RdfQueryException queryEx)
    {
        //There was an error executing the query so handle it here
        Console.WriteLine(queryEx.Message);
    }

При выполнении запроса выдается ошибка

[UriToken at Line1 столбец 10 - строка 1 столбец 52] Ожидается, что маркер префикса будет следовать за глаголом PREFIX в запросе

1 Ответ

0 голосов
/ 10 января 2012

Какую версию библиотеки вы используете?

В более ранних версиях была ошибка, когда между префиксом - в вашем случае u: - и URI пространства имен - в вашем случае <http://localhost:49682/Semantic/test.rdf>

Если вы используете последнюю версию библиотеки (0.5.1), у вас больше не будет этой проблемы

Редактировать

Это былоисправления в версии 0.5.0 (см. проблему CORE-88 ), так что на момент написания этой статьи у вас есть как минимум две версии, если вы видите эту ошибку, поскольку, как я уже ответил, обновление должно решить проблему.

...