public void Arrange(string sparqlQuery, out TripleStore store, out SparqlQuery query) { IGraph g = new VDS.RDF.Graph(); //Load triples from file OWL g.LoadFromFile(@"D:\Stud\4 course\II semester\!Diploma work\Software\Code\SPARQLtoSQL\SPARQLtoSQL\bin\Debug\combined.owl"); g.BaseUri = null; //! RdfsReasoner reasoner = new RdfsReasoner(); //Apply reasoner reasoner.Initialise(g); reasoner.Apply(g); g.BaseUri = null; //!!!!!!!! store = new TripleStore(); store.Add(g); SparqlParameterizedString queryString = new SparqlParameterizedString(); queryString.CommandText = sparqlQuery; SparqlQueryParser parser = new SparqlQueryParser(); //SparqlQuery query = parser.ParseFromString(queryString.ToString()); query = parser.ParseFromString(queryString.ToString()); Dictionary <string, string> dbURIs = new Dictionary <string, string>(); dbURIs.Add("http://www.semanticweb.org/KMS/", @"Data Source = ASUS\SQLEXPRESS; Initial Catalog = KMS; Integrated Security = True"); dbURIs.Add("http://www.semanticweb.org/LMS/", @"Data Source = ASUS\SQLEXPRESS; Initial Catalog = LMS; Integrated Security = True"); Program.ResolveBGPsFromDB(query.ToAlgebra(), g, dbURIs); Console.WriteLine(query.ToAlgebra()); Console.WriteLine(query.ToString()); }
public void GraphHardTrivial3() { Graph g = new Graph(); g.LoadFromFile("resources/turtle11/first.ttl"); Graph h = new Graph(); h.LoadFromFile("resources/turtle11/first.ttl"); Assert.AreEqual(g, h); }
public void GraphCollectionDiskDemand1() { TripleStore store = new TripleStore(new DiskDemandGraphCollection()); Graph g = new Graph(); g.LoadFromFile("resources\\InferenceTest.ttl"); g.BaseUri = new Uri("file:///" + Path.GetFullPath("resources\\InferenceTest.ttl")); Assert.IsTrue(store.HasGraph(g.BaseUri), "Graph Collection should contain the Graph"); Assert.AreEqual(g, store[g.BaseUri], "Graphs should be equal"); }
private static void TestGraphMatch(string testGraphName) { Graph a = new Graph(); a.LoadFromFile(string.Format("resources\\diff_cases\\{0}_a.ttl", testGraphName)); Graph b = new Graph(); b.LoadFromFile(string.Format("resources\\diff_cases\\{0}_b.ttl", testGraphName)); Assert.IsTrue(a.Equals(b)); Assert.IsTrue(b.Equals(a)); }
public void GraphDiffDifferentGraphs() { Graph g = new Graph(); Graph h = new Graph(); g.LoadFromFile("resources\\InferenceTest.ttl"); h.LoadFromFile("resources\\Turtle.ttl"); GraphDiffReport report = g.Difference(h); TestTools.ShowDifferences(report); Assert.False(report.AreEqual, "Graphs should not be equal"); }
public void GraphDiffNullReferenceB() { Graph g = new Graph(); g.LoadFromFile("resources\\InferenceTest.ttl"); GraphDiffReport report = g.Difference(null); TestTools.ShowDifferences(report); Assert.False(report.AreEqual, "Graphs should have been reported as non-equal for one null reference"); Assert.True(report.AreDifferentSizes, "Graphs should have been reported as different sizes for one null reference"); Assert.True(report.RemovedTriples.Any(), "Report should list removed triples"); }
public void GraphDiffEqualGraphs2() { Graph g = new Graph(); Graph h = new Graph(); g.LoadFromFile("resources\\InferenceTest.ttl"); h.LoadFromFile("resources\\InferenceTest.ttl"); GraphDiffReport report = g.Difference(h); TestTools.ShowDifferences(report); Assert.True(report.AreEqual, "Graphs should be equal"); }
public void SparqlJoinExplosion() { IGraph g = new Graph(); g.LoadFromFile("LearningStyles.rdf"); SparqlQuery query = new SparqlQueryParser().ParseFromFile("learning-problem.rq"); LeviathanQueryProcessor processor = new LeviathanQueryProcessor(new InMemoryDataset(g)); SparqlResultSet results = processor.ProcessQuery(query) as SparqlResultSet; Assert.IsNotNull(results); Assert.IsFalse(results.IsEmpty); Assert.AreEqual(176, results.Count); }
public void GraphDiffNullReferenceA() { Graph g = new Graph(); g.LoadFromFile("InferenceTest.ttl"); GraphDiff diff = new GraphDiff(); GraphDiffReport report = diff.Difference(null, g); TestTools.ShowDifferences(report); Assert.IsFalse(report.AreEqual, "Graphs should have been reported as non-equal for one null reference"); Assert.IsTrue(report.AreDifferentSizes, "Graphs should have been reported as different sizes for one null reference"); Assert.IsTrue(report.AddedTriples.Any(), "Report should list added triples"); }
public void SimpleExample() { Graph g = new Graph(); g.LoadFromFile("example.rdf"); NTriplesFormatter formatter = new NTriplesFormatter(); foreach (Triple t in g.Triples) { if (t.Subject.NodeType == NodeType.Blank) { Console.WriteLine(t.ToString(formatter)); } } }
public void GraphMatchTrivial1() { Graph g = new Graph(); g.LoadFromFile("resources/turtle11-unofficial/test-13.ttl"); Graph h = new Graph(); h.LoadFromFile("resources/turtle11-unofficial/test-13.out", new NTriplesParser()); GraphDiffReport report = g.Difference(h); if (!report.AreEqual) { TestTools.ShowDifferences(report); } Assert.IsTrue(report.AreEqual); }
private static void TestGraphDiff(string testGraphName) { Graph a = new Graph(); a.LoadFromFile(string.Format("resources\\diff_cases\\{0}_a.ttl", testGraphName)); Graph b = new Graph(); b.LoadFromFile(string.Format("resources\\diff_cases\\{0}_b.ttl", testGraphName)); var diff = a.Difference(b); if (!diff.AreEqual) { TestTools.ShowDifferences(diff); } Assert.True(diff.AreEqual); }
public void GraphCollectionDiskDemand2() { //Test that on-demand loading does not kick in for pre-existing graphs TripleStore store = new TripleStore(new DiskDemandGraphCollection()); Graph g = new Graph(); g.LoadFromFile("resources\\InferenceTest.ttl"); g.BaseUri = new Uri("file:///" + Path.GetFullPath("resources\\InferenceTest.ttl")); Graph empty = new Graph(); empty.BaseUri = g.BaseUri; store.Add(empty); Assert.True(store.HasGraph(g.BaseUri), "Graph Collection should contain the Graph"); Assert.NotEqual(g, store[g.BaseUri]); }
public void GraphDiffRemovedGroundTriples() { Graph g = new Graph(); Graph h = new Graph(); g.LoadFromFile("resources\\InferenceTest.ttl"); h.LoadFromFile("resources\\InferenceTest.ttl"); //Remove Triples about Ford Fiestas from 2nd Graph h.Retract(h.GetTriplesWithSubject(new Uri("http://example.org/vehicles/FordFiesta")).ToList()); GraphDiffReport report = g.Difference(h); TestTools.ShowDifferences(report); Assert.False(report.AreEqual, "Graphs should not have been reported as equal"); Assert.True(report.RemovedTriples.Any(), "Difference should have reported some Removed Triples"); }
public void GraphToDataTable() { Graph g = new Graph(); g.LoadFromFile("resources\\InferenceTest.ttl"); DataTable table = g.ToDataTable(); Assert.Equal(g.Triples.Count, table.Rows.Count); Assert.Equal(3, table.Columns.Count); foreach (DataRow row in table.Rows) { foreach (DataColumn col in table.Columns) { Console.Write(col.ColumnName + " = " + row[col].ToString() + " , "); } Console.WriteLine(); } }
public void GraphToDataTable() { Graph g = new Graph(); g.LoadFromFile("resources\\InferenceTest.ttl"); DataTable table = (DataTable)g; Assert.AreEqual(g.Triples.Count, table.Rows.Count, "Rows should have been equal to original number of Triples"); Assert.AreEqual(3, table.Columns.Count, "Should have had 3 columns"); foreach (DataRow row in table.Rows) { foreach (DataColumn col in table.Columns) { Console.Write(col.ColumnName + " = " + row[col].ToString() + " , "); } Console.WriteLine(); } }
public void GraphDiffRemovedMSG() { Graph g = new Graph(); Graph h = new Graph(); g.LoadFromFile("resources\\InferenceTest.ttl"); h.LoadFromFile("resources\\InferenceTest.ttl"); //Remove MSG from 2nd Graph INode toRemove = h.Nodes.BlankNodes().FirstOrDefault(); Skip.If(toRemove == null, "No MSGs in test graph"); h.Retract(h.GetTriplesWithSubject(toRemove).ToList()); GraphDiffReport report = g.Difference(h); TestTools.ShowDifferences(report); Assert.False(report.AreEqual, "Graphs should not have been reported as equal"); Assert.True(report.RemovedMSGs.Any(), "Difference should have reported some Removed MSGs"); }
public static ISPARQLQueryable <T> GetQuerable <T>(string data, bool autoquotation = true, bool treatUri = true, IEnumerable <Prefix> prefixes = null, bool skipTriplesWithEmptyObject = false, bool mindAsterisk = false, bool useStore = false, string defaultGraphUri = "http://test.org/defaultgraph") { DynamicSPARQLSpace.dotNetRDF.Connector connector = null; if (useStore) { var store = new VDS.RDF.TripleStore(); store.LoadFromString(data); connector = new Connector(new InMemoryDataset(store, new Uri(defaultGraphUri))); // var store2 = new VDS.RDF.Query.SparqlRemoteEndpoint(new Uri("http://10.109.219.4:9999/blazegraph/")); //store2.SetCredentials(""); } else { var graph = new VDS.RDF.Graph(); graph.LoadFromFile(data); connector = new Connector(new InMemoryDataset(graph)); } dynamic dyno = DynamicSPARQL.CreateDyno(connector.GetQueryingFunction(), updateFunc: connector.GetUpdateFunction(), autoquotation: autoquotation, treatUri: treatUri, prefixes: prefixes, skipTriplesWithEmptyObject: skipTriplesWithEmptyObject, mindAsterisk: mindAsterisk); return(new SPARQLQuery <T>(dyno)); }
public void GraphDiffAddedMSG() { Graph g = new Graph(); Graph h = new Graph(); g.LoadFromFile("resources\\InferenceTest.ttl"); h.LoadFromFile("resources\\InferenceTest.ttl"); //Add additional Triple to 2nd Graph INode blank = h.CreateBlankNode(); IUriNode subClass = h.CreateUriNode("rdfs:subClassOf"); IUriNode vehicle = h.CreateUriNode("eg:Vehicle"); h.Assert(new Triple(blank, subClass, vehicle)); GraphDiffReport report = g.Difference(h); TestTools.ShowDifferences(report); Assert.False(report.AreEqual, "Graphs should not have been reported as equal"); Assert.True(report.AddedMSGs.Any(), "Difference should have reported some Added MSGs"); }
static void CustomQueryLMS_KMS() { IGraph g = new VDS.RDF.Graph(); //Load triples from file OWL g.LoadFromFile("combined.owl"); g.BaseUri = null; //! //INode subj = g.CreateUriNode(new Uri("http://www.semanticweb.org/KMS/User/1")); //INode pred = g.CreateUriNode(new Uri("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")); //INode obj = g.CreateUriNode(new Uri("http://www.semanticweb.org/KMS/User")); //g.Assert(new Triple(subj,pred,obj)); RdfsReasoner reasoner = new RdfsReasoner(); //Apply reasoner reasoner.Initialise(g); reasoner.Apply(g); g.BaseUri = null; //!!!!!!!! TripleStore store = new TripleStore(); store.Add(g); SparqlParameterizedString queryString = new SparqlParameterizedString(); //queryString.CommandText = @"SELECT * WHERE { ?user <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.semanticweb.org/KMS/User>. // OPTIONAL {?user <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.semanticweb.org/LMS/User>}}"; // queryString.CommandText = @"SELECT * //WHERE { ?usr <http://www.semanticweb.org/LMS/User#EMAIL> ?email. // ?usr1 <http://www.semanticweb.org/KMS/User#EMAIL> ?email}"; //queryString.CommandText = @"SELECT * //WHERE { ?usr <http://www.semanticweb.org/LMS/User#ROLE_ID> ?roleID. // ?role <http://www.semanticweb.org/LMS/Role#ID> ?roleID. // ?role <http://www.semanticweb.org/LMS/Role#NAME> ""Teacher""}"; //queryString.Namespaces.AddNamespace("owl", new Uri("http://www.w3.org/2002/07/owl#")); //queryString.CommandText = @"SELECT * WHERE { // ?property owl:equivalentProperty ?property1 // filter regex(str(?property), '^http://www.semanticweb.org/FEDERATED/Kunde#NAME$')}"; queryString.CommandText = @"SELECT * WHERE { ?s <http://www.semanticweb.org/FEDERATED/Kunde#EMAIL> ?email. ?s1 <http://www.semanticweb.org/LMS/User#EMAIL> ?email}"; SparqlQueryParser parser = new SparqlQueryParser(); //SparqlQuery query = parser.ParseFromString(queryString.ToString()); SparqlQuery query = parser.ParseFromString(queryString.ToString()); Dictionary <string, string> dbURIs = new Dictionary <string, string>(); dbURIs.Add("http://www.semanticweb.org/KMS/", @"Data Source = ASUS\SQLEXPRESS; Initial Catalog = KMS; Integrated Security = True"); dbURIs.Add("http://www.semanticweb.org/LMS/", @"Data Source = ASUS\SQLEXPRESS; Initial Catalog = LMS; Integrated Security = True"); ResolveBGPsFromDB(query.ToAlgebra(), g, dbURIs); Console.WriteLine(query.ToAlgebra()); Console.WriteLine(query.ToString()); //ISparqlQueryProcessor processor = new LeviathanQueryProcessor(store); //process query //SparqlResultSet results = processor.ProcessQuery(query) as SparqlResultSet; ISparqlQueryProcessor processor = new QuantumQueryProcessor(store);//new LeviathanQueryProcessor(store); //process query var results = processor.ProcessQuery(query) as SparqlResultSet; if (results is SparqlResultSet) { SparqlResultSet rset = (SparqlResultSet)results; foreach (SparqlResult result in rset) { Console.WriteLine(result); } } }
public void WritingRdfXmlComplex() { Graph g = new Graph(); g.LoadFromFile("chado-in-owl.ttl"); this.CheckRoundTrip(g); }