public static void Main(String[] args) { StreamWriter output = new StreamWriter("TriXTestSuite.txt"); Console.SetOut(output); Console.WriteLine("## TriX Test Suite"); Console.WriteLine(); try { foreach (String file in Directory.GetFiles("trix_tests")) { if (Path.GetExtension(file) == ".xml") { Console.WriteLine("## Testing File " + Path.GetFileName(file)); try { //Parse in TriXParser parser = new TriXParser(); TripleStore store = new TripleStore(); parser.Load(store, new StreamParams(file)); Console.WriteLine("# Parsed OK"); Console.WriteLine(); foreach (Triple t in store.Triples) { Console.WriteLine(t.ToString() + " from Graph <" + t.GraphUri.ToString() + ">"); } Console.WriteLine(); //Serialize out Console.WriteLine("# Attempting reserialization"); TriXWriter writer = new TriXWriter(); writer.Save(store, new StreamParams(file + ".out")); Console.WriteLine("# Serialized OK"); Console.WriteLine(); //Now Parse back in TripleStore store2 = new TripleStore(); parser.Load(store2, new StreamParams(file + ".out")); Console.WriteLine("# Parsed back in again"); if (store.Graphs.Count == store2.Graphs.Count) { Console.WriteLine("Correct number of Graphs"); } else { Console.WriteLine("Incorrect number of Graphs - Expected " + store.Graphs.Count + " - Actual " + store2.Graphs.Count); } if (store.Triples.Count() == store2.Triples.Count()) { Console.WriteLine("Correct number of Triples"); } else { Console.WriteLine("Incorrect number of Triples - Expected " + store.Triples.Count() + " - Actual " + store2.Triples.Count()); } } catch (RdfParseException parseEx) { HandleError("Parser Error", parseEx); } catch (RdfException rdfEx) { HandleError("RDF Error", rdfEx); } catch (Exception ex) { HandleError("Other Error", ex); } finally { Console.WriteLine(); } } } } catch (RdfParseException parseEx) { HandleError("Parser Error", parseEx); } catch (Exception ex) { HandleError("Other Error", ex); } finally { output.Close(); } }
private void btnExport_Click(object sender, EventArgs e) { this.sfdExport.FilterIndex = this.cboExportFormat.SelectedIndex+1; if (this.sfdExport.ShowDialog() == DialogResult.OK) { String destFile = this.sfdExport.FileName; //Select the Writer IStoreWriter writer; switch (this.cboExportFormat.SelectedIndex) { case 0: writer = new TriGWriter(); break; case 1: writer = new TriXWriter(); break; case 2: writer = new NQuadsWriter(); break; default: writer = new TriGWriter(); break; } //Check the Extension matches the output format String ext = MimeTypesHelper.GetFileExtension(writer); if (!Path.GetExtension(destFile).Equals("." + ext)) { destFile = Path.Combine(Path.GetDirectoryName(destFile), Path.GetFileNameWithoutExtension(destFile) + "." + ext); } //Estimate Load Time int graphTriples = Int32.Parse(this.lvwDBInfo.Items[3].SubItems[1].Text); int loadTime = graphTriples / 25000; if (MessageBox.Show("Are you sure you wish to export this Store? To do this your entire Store must first be loaded into memory - we estimate that this will take approximately " + loadTime + " seconds - and then it will be written to disk. Are you sure you wish to proceed?", "Confirm Export", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { //Export try { System.Diagnostics.Stopwatch timer = new System.Diagnostics.Stopwatch(); timer.Start(); ThreadedSqlTripleStore store = new ThreadedSqlTripleStore(this._connection.ThreadedManager, 8, false); timer.Stop(); double actualLoadTime = (double)timer.ElapsedMilliseconds / 1000d; timer.Reset(); timer.Start(); writer.Save(store, new StreamParams(destFile)); timer.Stop(); double actualWriteTime = (double)timer.ElapsedMilliseconds / 1000d; MessageBox.Show("Export completed successfully to file '" + destFile + "'\n\nLoad took " + actualLoadTime + " seconds - Writing took " + actualWriteTime + " seconds - Export took " + (actualLoadTime+actualWriteTime) + " seconds total", "Export Completed", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Export failed due to the following error:\n" + ex.Message, "Export Failed", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }