public void InteropSemWebInMemoryStoreConversion() { //Set up a Store and load 3 Graphs into it TripleStore store = new TripleStore(); Graph g = new Graph(); FileLoader.Load(g, "InferenceTest.ttl"); store.Add(g); g = new Graph(); FileLoader.Load(g, "Turtle.ttl"); store.Add(g); g = new Graph(); g.Assert(new Triple(g.CreateUriNode(new Uri("http://example.org/#this")), g.CreateUriNode(new Uri(RdfSpecsHelper.RdfType)), g.CreateUriNode(new Uri("http://example.org/Graph")))); store.Add(g); InMemoryStoreSource source = new InMemoryStoreSource(store); //Put this all into a SemWeb MemoryStore MemoryStore mem = new MemoryStore(); source.Select(mem); SemWebConsolePrinter printer = new SemWebConsolePrinter(); mem.Select(printer); //Read it back into a dotNetRDF TripleStore InMemoryStoreSource source2 = new InMemoryStoreSource(new TripleStore()); mem.Select(source2); //Check the two stores are equivalent IInMemoryQueryableStore store2 = source2.Store; foreach (IGraph graph in store.Graphs) { String baseUri = (graph.BaseUri == null) ? String.Empty : graph.BaseUri.ToString(); Assert.IsTrue(store2.HasGraph(graph.BaseUri), "Second Store has Graph '" + baseUri + "' missing"); Assert.AreEqual(graph, store2.Graph(graph.BaseUri), "Graph '" + baseUri + "' was not the same Graph in both Stores"); } }