public static void Main(String[] args) { StreamWriter output = new StreamWriter("NQuadsTestSuite.txt"); Console.SetOut(output); Console.WriteLine("## NQuads Test Suite"); Console.WriteLine(); try { //Make sure Test Directory exists if (!Directory.Exists("nquads_tests")) { Directory.CreateDirectory("nquads_tests"); } //First read in the TriG tests and serialize to NQuads Console.WriteLine("# Reading in TriG files and serializing to NQuads"); foreach (String file in Directory.GetFiles("trig_tests")) { if (Path.GetExtension(file) == ".trig") { //Skip the Bad Syntax tests if (Path.GetFileName(file).StartsWith("bad")) continue; Console.WriteLine("Reading File " + Path.GetFileName(file)); try { TriGParser parser = new TriGParser(); TripleStore store = new TripleStore(); parser.Load(store, new StreamParams(file)); Console.WriteLine("Parsed OK"); NQuadsWriter writer = new NQuadsWriter(); String outfile = "nquads_tests/" + Path.GetFileNameWithoutExtension(file) + ".nq"; writer.Save(store, new StreamParams(outfile)); Console.WriteLine("Serialized OK"); NQuadsParser nqparser = new NQuadsParser(); nqparser.TraceTokeniser = true; TripleStore store2 = new TripleStore(); nqparser.Load(store2, new StreamParams(outfile)); Console.WriteLine("Parsed serialized NQuads OK"); if (store.Graphs.Count != store2.Graphs.Count) { Console.WriteLine("ERROR: Wrong number of Graphs when parsed back in"); } else if (store.Triples.Count() != store2.Triples.Count()) { Console.WriteLine("ERROR: Wrong number of Triples when parsed back in"); } } 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(); } }
public void Dispose() { //Create all of the directories required for the file var f = new FileInfo(_outputPath); f.Directory.Create(); if (this._outputFormat == ERdfFormat.RdfXml) { using (XmlTextWriter xmlWriter = new XmlTextWriter(_outputPath, new UTF8Encoding(false))) //Set encoding { _output.Save(xmlWriter); } } else if (this._outputFormat == ERdfFormat.TriG) { string fileNameAsTrig = GetFilePathBasedOnFormat(); var outparams = new StreamParams(fileNameAsTrig); outparams.Encoding = Encoding.UTF8; var writer = new TriGWriter(); if (_store == null) { var g = GetXmlDocumentAsGraph(); _store = new TripleStore(); _store.Add(g, true); } writer.Save(_store, outparams); } else if (this._outputFormat == ERdfFormat.Turtle) { var g = GetXmlDocumentAsGraph(); string filePathForFormat = GetFilePathBasedOnFormat(); var writer = new TurtleWriter(TurtleSyntax.W3C); writer.Save(g, filePathForFormat); } else if (this._outputFormat == ERdfFormat.NTriples) { var g = GetXmlDocumentAsGraph(); string filePathForFormat = GetFilePathBasedOnFormat(); var writer = new NTriplesWriter(); writer.Save(g, filePathForFormat); } else if (this._outputFormat == ERdfFormat.N3) { var g = GetXmlDocumentAsGraph(); string filePathForFormat = GetFilePathBasedOnFormat(); var writer = new Notation3Writer(); writer.Save(g, filePathForFormat); } else if (this._outputFormat == ERdfFormat.NQuads) { string filePathForFormat = GetFilePathBasedOnFormat(); var outparams = new StreamParams(filePathForFormat); outparams.Encoding = Encoding.UTF8; if (_store == null) { var g = GetXmlDocumentAsGraph(); _store = new TripleStore(); _store.Add(g, true); } var writer = new NQuadsWriter(); writer.Save(_store, outparams); } //make sure it's not null - can happen if no graphs have yet to be asserted!! if (_store != null) { foreach (var graph in _store.Graphs) { graph.Dispose(); } _store.Dispose(); GC.Collect(); } }