public void WritingSerializeOwnOneOfVeryLarge() { //Create the Graph for the Test and Generate a List of URIs Graph g = new Graph(); List <IUriNode> nodes = new List <IUriNode>(); for (int i = 1; i <= 10000; i++) { nodes.Add(g.CreateUriNode(new Uri("http://example.org/Class" + i))); } //Use the thingOneOf to generate the Triples thingOneOf(g, nodes.ToArray()); //Dump as NTriples to the Console NTriplesFormatter formatter = new NTriplesFormatter(); foreach (Triple t in g.Triples) { Console.WriteLine(t.ToString(formatter)); } Console.WriteLine(); //Now try to save as RDF/XML IRdfWriter writer = new RdfXmlWriter(); writer.Save(g, "owl-one-of.rdf"); Console.WriteLine("Saved OK using RdfXmlWriter"); Console.WriteLine(); writer = new PrettyRdfXmlWriter(); ((ICompressingWriter)writer).CompressionLevel = WriterCompressionLevel.Medium; writer.Save(g, "owl-one-of-pretty.rdf"); Console.WriteLine("Saved OK using PrettyRdfXmlWriter"); Console.WriteLine(); //Now check that the Graphs are all equivalent Graph h = new Graph(); h.LoadFromFile("owl-one-of.rdf"); Assert.Equal(g, h); Console.WriteLine("RdfXmlWriter serialization was OK"); Console.WriteLine(); Graph j = new Graph(); j.LoadFromFile("owl-one-of-pretty.rdf"); Assert.Equal(g, j); Console.WriteLine("PrettyRdfXmlWriter serialization was OK"); }
public void WritingRdfXmlEntityCompactionLeadingDigits() { const String data = "@prefix ex: <http://example.org/> . ex:1s ex:p ex:2o ."; Graph g = new Graph(); g.LoadFromString(data, new TurtleParser()); RdfXmlWriter writer = new RdfXmlWriter(); writer.CompressionLevel = WriterCompressionLevel.High; String outData = StringWriter.Write(g, writer); Assert.Contains("rdf:about=\"&ex;1s\"", outData); Assert.Contains("rdf:resource=\"&ex;2o\"", outData); }
public void RdfXmlEntityEscapesApostrophes() { const string data = "@prefix ex: <http://dbpedia.org/resource/Buyer's_Remorse:> . ex:s <http://example.org/p> <http://example.org/o> ."; var g = new Graph(); g.LoadFromString(data, new TurtleParser()); var writer = new RdfXmlWriter { CompressionLevel = WriterCompressionLevel.High }; var outData = StringWriter.Write(g, writer); Assert.Contains("<!ENTITY ex 'http://dbpedia.org/resource/Buyer's_Remorse:'>", outData); Assert.Contains("xmlns:ex=\"http://dbpedia.org/resource/Buyer's_Remorse:\"", outData); Assert.Contains("rdf:about=\"&ex;s", outData); }
/// <summary> /// Internal Method which performs multi-threaded writing of data /// </summary> private void SaveGraphs(FolderStoreWriterContext context) { //Create the relevant Writer IRdfWriter writer; switch (context.Format) { case FolderStoreFormat.Turtle: writer = new TurtleWriter(); break; case FolderStoreFormat.Notation3: writer = new Notation3Writer(); break; case FolderStoreFormat.RdfXml: #if !NO_XMLDOM writer = new FastRdfXmlWriter(); #else writer = new RdfXmlWriter(); #endif break; default: writer = new TurtleWriter(); break; } try { Uri u = context.GetNextURI(); while (u != null) { //Get the Graph from the Store IGraph g = context.Store.Graphs[u]; //Write to Disk String destFile = Path.Combine(context.Folder, u.GetSha256Hash()); switch (context.Format) { case FolderStoreFormat.Turtle: destFile += ".ttl"; break; case FolderStoreFormat.Notation3: destFile += ".n3"; break; case FolderStoreFormat.RdfXml: destFile += ".rdf"; break; default: destFile += ".ttl"; break; } writer.Save(g, destFile); //Get the Next Uri u = context.GetNextURI(); } } catch (ThreadAbortException) { //We've been terminated, don't do anything #if !SILVERLIGHT Thread.ResetAbort(); #endif } catch (Exception ex) { throw new RdfStorageException("Error in Threaded Writer in Thread ID " + Thread.CurrentThread.ManagedThreadId, ex); } }