Exemple #1
0
        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);
        }
Exemple #3
0
        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");
        }
Exemple #8
0
        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");
        }
Exemple #10
0
        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);
        }
Exemple #13
0
        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();
            }
        }
Exemple #16
0
        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");
        }
Exemple #18
0
        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");
        }
Exemple #20
0
        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 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 WritingRdfXmlComplex()
        {
            Graph g = new Graph();
            g.LoadFromFile("chado-in-owl.ttl");

            this.CheckRoundTrip(g);
        }