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"); }
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; } }
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."); } }
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; } } }
/// <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; }
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; }
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); }
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; }
/// <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; }