예제 #1
0
        public void StorageStardogReasoningQL()
        {
            StardogConnector stardog = StardogTests.GetConnection();

            if (stardog.Reasoning == StardogReasoningMode.DatabaseControlled)
            {
                Assert.Inconclusive(
                    "Version of Stardog being tested does not support configuring reasoning mode at connection level");
            }

            Graph g = new Graph();

            g.LoadFromFile("resources\\InferenceTest.ttl");
            g.BaseUri = new Uri("http://example.org/reasoning");
            stardog.SaveGraph(g);

            String query = "PREFIX rdfs: <" + NamespaceMapper.RDFS +
                           "> SELECT * WHERE { { ?class rdfs:subClassOf <http://example.org/vehicles/Vehicle> } UNION { GRAPH <http://example.org/reasoning> { ?class rdfs:subClassOf <http://example.org/vehicles/Vehicle> } } }";

            Console.WriteLine(query);
            Console.WriteLine();

            SparqlResultSet resultsNoReasoning = stardog.Query(query) as SparqlResultSet;

            if (resultsNoReasoning != null)
            {
                Console.WriteLine("Results without Reasoning");
                TestTools.ShowResults(resultsNoReasoning);
            }
            else
            {
                Assert.Fail("Did not get a SPARQL Result Set as expected");
            }

            stardog.Reasoning = StardogReasoningMode.QL;
            SparqlResultSet resultsWithReasoning = stardog.Query(query) as SparqlResultSet;

            if (resultsWithReasoning != null)
            {
                Console.WriteLine("Results with Reasoning");
                TestTools.ShowResults(resultsWithReasoning);
            }
            else
            {
                Assert.Fail("Did not get a SPARQL Result Set as expected");
            }

            Assert.IsTrue(resultsWithReasoning.Count >= resultsNoReasoning.Count,
                          "Reasoning should yield as many if not more results");
        }
예제 #2
0
        public void StorageStardogReasoningQL()
        {
            try
            {
                //Options.UseBomForUtf8 = false;
                Options.HttpDebugging = true;

                StardogConnector stardog = StardogTests.GetConnection();;

                Graph g = new Graph();
                g.LoadFromFile("InferenceTest.ttl");
                g.BaseUri = new Uri("http://example.org/reasoning");
                stardog.SaveGraph(g);

                String query = "PREFIX rdfs: <" + NamespaceMapper.RDFS + "> SELECT * WHERE { { ?class rdfs:subClassOf <http://example.org/vehicles/Vehicle> } UNION { GRAPH <http://example.org/reasoning> { ?class rdfs:subClassOf <http://example.org/vehicles/Vehicle> } } }";
                Console.WriteLine(query);
                Console.WriteLine();

                SparqlResultSet resultsNoReasoning = stardog.Query(query) as SparqlResultSet;
                if (resultsNoReasoning != null)
                {
                    Console.WriteLine("Results without Reasoning");
                    TestTools.ShowResults(resultsNoReasoning);
                }
                else
                {
                    Assert.Fail("Did not get a SPARQL Result Set as expected");
                }

                stardog.Reasoning = StardogReasoningMode.QL;
                SparqlResultSet resultsWithReasoning = stardog.Query(query) as SparqlResultSet;
                if (resultsWithReasoning != null)
                {
                    Console.WriteLine("Results with Reasoning");
                    TestTools.ShowResults(resultsWithReasoning);
                }
                else
                {
                    Assert.Fail("Did not get a SPARQL Result Set as expected");
                }

                Assert.IsTrue(resultsWithReasoning.Count >= resultsNoReasoning.Count, "Reasoning should yield as many if not more results");
            }
            finally
            {
                //Options.UseBomForUtf8 = true;
                Options.HttpDebugging = false;
            }
        }
예제 #3
0
        public void StorageStardogReasoningByQuery2()
        {
            StardogConnector stardog = StardogTests.GetConnection();

            if (stardog.Reasoning == StardogReasoningMode.DatabaseControlled)
            {
                throw new SkipTestException(
                          "Version of Stardog being tested does not support configuring reasoning mode at connection level");
            }

            Graph g = new Graph();

            g.LoadFromFile("resources\\stardog-reasoning-test.rdf");
            g.BaseUri = new Uri("http://www.reasoningtest.com/");
            stardog.SaveGraph(g);

            String query = "Select ?building where { ?building <http://www.reasoningtest.com#hasLocation> ?room.}";

            Console.WriteLine(query);
            Console.WriteLine();

            SparqlResultSet resultsWithNoReasoning = stardog.Query(query, false) as SparqlResultSet;

            Assert.Null(resultsWithNoReasoning);
            if (resultsWithNoReasoning != null)
            {
                Console.WriteLine("Results With No Reasoning");
                Assert.True(false, "There should not be any reasoning results !");
            }
            else
            {
                Assert.True(true, "No SPARQL Results returned ! Success.");
            }
        }
예제 #4
0
        public void StorageStardogReasoningByQuery1()
        {
            StardogConnector stardog = StardogTests.GetConnection();

            Skip.If(stardog.Reasoning == StardogReasoningMode.DatabaseControlled,
                    "Version of Stardog being tested does not support configuring reasoning mode at connection level");

            Graph g = new Graph();

            g.LoadFromFile("resources\\stardog-reasoning-test.rdf");
            g.BaseUri = new Uri("http://www.reasoningtest.com/");
            stardog.SaveGraph(g);

            String query = "Select ?building where { ?building <http://www.reasoningtest.com#hasLocation> ?room.}";

            Console.WriteLine(query);
            Console.WriteLine();

            SparqlResultSet resultsWithReasoning = stardog.Query(query, true) as SparqlResultSet;

            Assert.NotNull(resultsWithReasoning);
            if (resultsWithReasoning != null)
            {
                Console.WriteLine("Results With Reasoning");
                TestTools.ShowResults(resultsWithReasoning);
                Assert.True(true, "Reasoning By Query OK !");
            }
            else
            {
                Assert.True(false, "Did not get a SPARQL Result Set as expected");
            }
        }
    /// <summary>
    /// Exdecute a SPARQL query and return the results
    /// </summary>
    /// <param name="command">Your SPARQL query</param>
    /// <param name="rm">Reasoning mode; default is none</param>
    /// <returns></returns>
    public static SparqlResultSet Query(string command, StardogReasoningMode rm = StardogReasoningMode.None)
    {
        using (StardogConnector dog = new StardogConnector(ConnectionString(), ConnectionDatabase(), rm, ConnectionUser(), ConnectionPassword()))
        {
            Object results = dog.Query(Prefixes() + command);

            if (results is SparqlResultSet)
            {
                SparqlResultSet rset = (SparqlResultSet)results;
                return rset;
            }
            else
            {
                throw new Exception("query failed " + command);

                return null;
            }
        }
    }
예제 #6
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="strComunidade"></param>
        /// <param name="LearningObject"></param>
        /// <returns></returns>
        public static LearningObjectContextModel GetLearningObjectWithComunidade(String strComunidade, 
            String LearningObjectID)
        {
            LearningObjectContextModel modelToReturn = new LearningObjectContextModel();
            StardogConnector dog = new StardogConnector("http://*****:*****@"PREFIX onto: <http://www.owl-ontologies.com/OntoAdapt2.owl#>
                          SELECT *   WHERE { ");
            strb.AppendFormat(" onto:{0}  onto:LOLink ?t", LearningObjectID);
            //strb.AppendFormat(" onto:{0} onto:hasLOMediaType ?Media.", LearningObjectID);
            //strb.AppendFormat(" onto:{0} onto:LearningObjectFormat ?ObjFormat", LearningObjectID);
            strb.Append(".}");

            SparqlResultSet resultsNoReasoning = dog.Query(strb.ToString()) as SparqlResultSet;

            List<SparqlResult> lista = resultsNoReasoning.ToList();

            List<String> toReturn = new List<string>();

            foreach (SparqlResult rlt in lista)
            {
                //modelToReturn.LOLink = RemoveURLFromOntoloryResults(rlt[0].ToString());

            }
            return modelToReturn;
        }
예제 #7
0
        private List<LearningObjectContextModel> LearningObjectsList(List<SparqlResult> lista)
        {
            List<LearningObjectContextModel> toReturn = new List<LearningObjectContextModel>();

            foreach (SparqlResult rlt in lista)
            {
                StardogConnector dog = new StardogConnector("http://*****:*****@"PREFIX onto: <http://www.owl-ontologies.com/OntoAdapt2.owl#> ");
                strb.Append(@"SELECT ?x ?Idiom ?F { ");
                // tipo de conexão
                strb.Append(" OPTIONAL {");
                strb.AppendFormat("onto:{0} onto:LOLink  ?x ", RemoveURLFromOntoloryResults(rlt[0].ToString()));
                strb.Append(".}");
                strb.Append(" OPTIONAL {");
                strb.AppendFormat("onto:{0} onto:LO_Idiom ?Idiom ", RemoveURLFromOntoloryResults(rlt[0].ToString()));
                strb.Append(".}");
                strb.Append(" OPTIONAL {");
                strb.AppendFormat("onto:{0} onto:LearningObjectFormat ?F", RemoveURLFromOntoloryResults(rlt[0].ToString()));
                strb.Append(".}");
                strb.Append(".}");

                SparqlResultSet resultsNoReasoning = dog.Query(strb.ToString()) as SparqlResultSet;
                List<SparqlResult> listaObjs = resultsNoReasoning.ToList();
                foreach (SparqlResult rltLO in listaObjs)
                {
                    LearningObjectContextModel lo = new LearningObjectContextModel();
                    //lo.LOLink = rltLO[0].ToString();
                    toReturn.Add(lo);
                }

            }
            return toReturn;
        }
예제 #8
0
        public List<LearningObjectContextModel> GetSugestaoObjetos(string UserID)
        {
            if(hardware == null) return null;
            StardogConnector dog = new StardogConnector("http://*****:*****@"PREFIX onto: <http://www.owl-ontologies.com/OntoAdapt2.owl#> ");
            strb.Append(@"SELECT *  { ");
            // tipo de conexão
            strb.AppendFormat("onto:{0} onto:DeviceTypeConnection  \"{1}\". ", hardware.model_name, hardware.type_Connection);
            strb.Append("?s onto:hasLOMediaType ?MediaType.");
            strb.Append("}");

            SparqlResultSet resultsNoReasoning = dog.Query(strb.ToString()) as SparqlResultSet;

            List<SparqlResult> lista = resultsNoReasoning.ToList();

            //se não achou objetos com formatos disponivel pega qualquer um e formata.

            return LearningObjectsList(lista);
        }
예제 #9
0
        public static List<String> ListAllLearningObjectWithComunidade(String strComunidade)
        {
            StardogConnector dog = new StardogConnector("http://*****:*****@"PREFIX onto: <http://www.owl-ontologies.com/OntoAdapt2.owl#> ");
            strb.Append("       SELECT ?Estudantes  { ?Estudantes onto:ComunidadeLO \"" + strComunidade);
            strb.Append("\".}");

            SparqlResultSet resultsNoReasoning = dog.Query(strb.ToString()) as SparqlResultSet;

            List<SparqlResult> lista = resultsNoReasoning.ToList();

            List<String> toReturn = new List<string>();
            foreach (SparqlResult rlt in lista)
            {
                toReturn.Add(RemoveURLFromOntoloryResults(rlt[0].ToString()));
            }
            return toReturn;
        }
예제 #10
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="strComunidade"></param>
        /// <param name="LearningObject"></param>
        /// <returns></returns>
        public static HardwareModel GetUserDeviceWithComunidade(String strComunidade, String User)
        {
            HardwareModel modelToReturn = new HardwareModel();
            StardogConnector dog = new StardogConnector("http://*****:*****@"PREFIX onto: <http://www.owl-ontologies.com/OntoAdapt2.owl#> ");
            strb.Append(@"SELECT ?Dev  { ");
            strb.AppendFormat("onto:{0} onto:ComunidadeMoodle  \"{1}\". ", User, strComunidade);
            strb.AppendFormat("onto:{0} onto:hasDevice ?Dev. ", User);
            //strb.Append("?Dev onto:DeviceID ?DevID");
            strb.Append("}");

            SparqlResultSet resultsNoReasoning = dog.Query(strb.ToString()) as SparqlResultSet;

            List<SparqlResult> lista = resultsNoReasoning.ToList();

            List<String> toReturn = new List<string>();

            foreach (SparqlResult rlt in lista)
            {
                modelToReturn.Device_ID = RemoveURLFromOntoloryResults(rlt[0].ToString());
            }
            return modelToReturn;
        }