Esempio n. 1
0
        public void TestAsk()
        {
            // Checking the model using ASK queries.
            SparqlQuery        query  = new SparqlQuery("ASK WHERE { ?s nco:fullname 'Hans Wurscht' . }");
            ISparqlQueryResult result = Model.ExecuteQuery(query);

            Assert.AreEqual(true, result.GetAnwser());

            query  = new SparqlQuery("ASK WHERE { ?s nco:fullname 'Hans Meier' . }");
            result = Model.ExecuteQuery(query);

            Assert.AreEqual(false, result.GetAnwser());
        }
Esempio n. 2
0
        public void TestInsert()
        {
            SparqlUpdate update = new SparqlUpdate(@"INSERT DATA INTO <ex:TestModel> { ex:book dc:title 'This is an example title' . }");

            _model.ExecuteUpdate(update);

            SparqlQuery query = new SparqlQuery(@"ASK WHERE { ?s dc:title 'This is an example title' . }");

            ISparqlQueryResult result = _model.ExecuteQuery(query);

            Assert.AreEqual(true, result.GetAnwser());
        }
Esempio n. 3
0
        public T ExecuteScalar <T>(QueryModel queryModel)
        {
            Type t = typeof(T);

            if (t == typeof(bool))
            {
                // Generate and execute ASK query.
                SparqlQueryModelVisitor <T> visitor = new SparqlQueryModelVisitor <T>(new AskQueryGenerator());
                visitor.VisitQueryModel(queryModel);

                ISparqlQuery       query  = visitor.GetQuery();
                ISparqlQueryResult result = Model.ExecuteQuery(query, _inferenceEnabled);

                return(new object[] { result.GetAnwser() }.OfType <T>().First());
            }
            else if (queryModel.ResultOperators.Any(o => o is CountResultOperator))
            {
                SparqlQueryModelVisitor <T> visitor = new SparqlQueryModelVisitor <T>(new SelectBindingsQueryGenerator());
                visitor.VisitQueryModel(queryModel);

                ISparqlQuery       query  = visitor.GetQuery();
                ISparqlQueryResult result = Model.ExecuteQuery(query, _inferenceEnabled);

                BindingSet b = result.GetBindings().FirstOrDefault();

                if (b != null && b.Any())
                {
                    return(new object[] { b.First().Value }.OfType <T>().First());
                }
                else
                {
                    return(new object[] { 0 }.OfType <T>().First());
                }
            }
            else
            {
                // Unknown scalar type.
                throw new NotImplementedException();
            }
        }