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");
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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&apos;s_Remorse:'>", outData);
            Assert.Contains("xmlns:ex=\"http://dbpedia.org/resource/Buyer&apos;s_Remorse:\"", outData);
            Assert.Contains("rdf:about=\"&ex;s", outData);
        }
Beispiel #4
0
        /// <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);
            }
        }