public static void Main(String[] args) 
    {
	    //Fill in the code shown on this page here to build your hello world application
        Graph g = new Graph();

        IUriNode dotNetRDF = g.CreateUriNode(new Uri("http://www.dotnetrdf.org"));
        IUriNode says = g.CreateUriNode(new Uri("http://example.org/says"));
        ILiteralNode helloWorld = g.CreateLiteralNode("Hello World");
        ILiteralNode bonjourMonde = g.CreateLiteralNode("Bonjour tout le Monde", "fr");

        g.Assert(new Triple(dotNetRDF, says, helloWorld));
        g.Assert(new Triple(dotNetRDF, says, bonjourMonde));

        foreach (Triple t in g.Triples)
        {
            Console.WriteLine(t.ToString());
        }

        NTriplesWriter ntwriter = new NTriplesWriter();
        ntwriter.Save(g, "HelloWorld.nt");

        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
        rdfxmlwriter.Save(g, "HelloWorld.rdf");

    }
        public Stream ExecuteQuery(string queryExpression, IList <string> datasetGraphUris)
        {
            var parser        = new SparqlQueryParser();
            var query         = parser.ParseFromString(queryExpression);
            var sparqlResults = _queryProcessor.ProcessQuery(query);
            var memoryStream  = new MemoryStream();

            using (var streamWriter = new StreamWriter(memoryStream, Encoding.UTF8))
            {
                if (sparqlResults is SparqlResultSet)
                {
                    var resultSet = sparqlResults as SparqlResultSet;
                    var writer    = new SparqlXmlWriter();
                    writer.Save(resultSet, streamWriter);
                }
                else if (sparqlResults is IGraph)
                {
                    var g      = sparqlResults as IGraph;
                    var writer = new RdfXmlWriter();
                    writer.Save(g, streamWriter);
                }
            }
            return(new MemoryStream(memoryStream.ToArray()));
            //return new MemoryStream(Encoding.UTF8.GetBytes(buff.ToString()), false);
        }
Ejemplo n.º 3
0
        public void WriteToFile(IGraph graph, String path)
        {
            logger.LogFunction("WriteToFile");
            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            rdfxmlwriter.Save(graph, path);
        }
Ejemplo n.º 4
0
        public static void Main(String[] args)
        {
            //Fill in the code shown on this page here to build your hello world application
            Graph g = new Graph();

            IUriNode     dotNetRDF    = g.CreateUriNode(new Uri("http://www.dotnetrdf.org"));
            IUriNode     says         = g.CreateUriNode(new Uri("http://example.org/says"));
            ILiteralNode helloWorld   = g.CreateLiteralNode("Hello World");
            ILiteralNode bonjourMonde = g.CreateLiteralNode("Bonjour tout le Monde", "fr");

            g.Assert(new Triple(dotNetRDF, says, helloWorld));
            g.Assert(new Triple(dotNetRDF, says, bonjourMonde));

            foreach (Triple t in g.Triples)
            {
                Console.WriteLine(t.ToString());
            }

/*            NTriplesWriter ntwriter = new NTriplesWriter();
 *          ntwriter.Save(g, "HelloWorld.nt");*/

            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            rdfxmlwriter.Save(g, "HelloWorld.rdf");
        }
Ejemplo n.º 5
0
        public void mtest()
        {
            if (mtestRan > 0)
            {
                Warn("Running mtest() twice might expose some bugs with creating two instances of the same graph that will not be fixed this week!");
                return;
            }
            mtestRan++;
            var g = NewGraph("mtest", UriOfMt("mtest"), true, false);

            g.BaseUri = UriFactory.Create(RoboKindURI);

            IUriNode     dotNetRDF    = g.CreateUriNode(UriFactory.Create("http://www.dotnetrdf.org"));
            IUriNode     says         = g.CreateUriNode(UriFactory.Create("http://example.org/says"));
            ILiteralNode helloWorld   = g.CreateLiteralNode("Hello World");
            ILiteralNode bonjourMonde = g.CreateLiteralNode("Bonjour tout le Monde", "fr");

            rdfGraphAssert(g, MakeTriple(dotNetRDF, says, helloWorld));
            rdfGraphAssert(g, MakeTriple(dotNetRDF, says, bonjourMonde));

            foreach (Triple t in g.Triples)
            {
                ConsoleWriteLine(t.ToString());
                ConsoleWriteLine("TRIPLE: triple(\"{0}\",\"{1}\",\"{2}\").", t.Subject.ToString(),
                                 t.Predicate.ToString(), t.Object.ToString());
            }

            NTriplesWriter ntwriter = new NTriplesWriter();

            ntwriter.Save(g, "HelloWorld.nt");

            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            rdfxmlwriter.Save(g, "HelloWorld.rdf");

            FindOrCreateKB("testRDF").SourceKind = ContentBackingStore.Prolog;
            if (RdfDeveloperSanityChecks < 3)
            {
                return;
            }
            rdfImportToKB(g,
                          "testRDF",
                          "SELECT * WHERE { ?s ?p ?o }",
                          null);
            foreach (var nameAndEndp in
                     new[]
            {
                //new[] {"http://budapest.rkbexplorer.com/sparql"},
                new[] { "dbpedia", "http://dbpedia.org/sparql" },
                //   new[] {"josekiBooks", "http://cogserver:2020"},
                // new[] {"cogPoint", "http://cogserver:8181"},
                //new[] {"hebis", "http://lod.hebis.de/sparql"},
            })
            {
                string prefix = nameAndEndp[0];
                string endp   = nameAndEndp[1];
                CreateTestTriangle(prefix, endp);
            }
            return;
        }
Ejemplo n.º 6
0
        public void WriteSchema()
        {
            var    writer = new RdfXmlWriter();
            string path   = @"E:\3 курс\WeB\Lab4\RDF_Lab4\StaticFiles\rabotaSchema.rdf";

            writer.Save(_graph, path);
        }
Ejemplo n.º 7
0
        public void WriteGraph(IGraph g)
        {
            var    writer = new RdfXmlWriter();
            string path   = @"E:\3 курс\WeB\Lab4\RDF_Lab4\StaticFiles\rabota.rdf";

            writer.Save(g, path);
        }
        public void ParsingBaseUriAssignmentRdfXml()
        {
            Graph g = new Graph();

            g.BaseUri = new Uri("http://example.org/RdfXml");

            System.IO.StringWriter strWriter = new System.IO.StringWriter();
            RdfXmlWriter           writer    = new RdfXmlWriter();

            writer.Save(g, strWriter);

            Console.WriteLine("Original Base URI: " + ShowBaseUri(g.BaseUri));

            Console.WriteLine("Output using RdfXmlWriter:");
            Console.WriteLine(strWriter.ToString());
            Console.WriteLine();

            Graph        h      = new Graph();
            RdfXmlParser parser = new RdfXmlParser();

            parser.Load(h, new System.IO.StringReader(strWriter.ToString()));

            Console.WriteLine("Base URI after round-trip using RdfXmlWriter: " + ShowBaseUri(h.BaseUri));
            Assert.IsNotNull(h.BaseUri, "Base URI should not be null");
        }
Ejemplo n.º 9
0
 protected void createrdf(string filename)
 {
     Graph g = new Graph();
     Session["ggraph"] = g;
     RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
     rdfxmlwriter.Save(g, path_user + filename + ".rdf");
 }
Ejemplo n.º 10
0
    public static void Main(String[] args)
    {
        Console.WriteLine(Environment.CurrentDirectory);

        Graph g = new Graph();

        IUriNode     dotNetRDF    = g.CreateUriNode(new Uri("http://www.dotnetrdf.org"));
        IUriNode     says         = g.CreateUriNode(new Uri("http://example.org/says"));
        ILiteralNode helloWorld   = g.CreateLiteralNode("Hello World");
        ILiteralNode bonjourMonde = g.CreateLiteralNode("Bonjour tout le Monde", "fr");

        g.Assert(new Triple(dotNetRDF, says, helloWorld));
        g.Assert(new Triple(dotNetRDF, says, bonjourMonde));

        foreach (Triple t in g.Triples)
        {
            Console.WriteLine(t.ToString());
        }

        NTriplesWriter ntwriter = new NTriplesWriter();

        ntwriter.Save(g, "HelloWorld.nt");

        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

        rdfxmlwriter.Save(g, "HelloWorld.rdf");
    }
Ejemplo n.º 11
0
        public void Save()
        {
            logger.LogFunction("WriteToFile");
            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            rdfxmlwriter.Save(situation, path);
        }
Ejemplo n.º 12
0
 public static void WriteGraph(IGraph graph)
 {
     lock (Locks.GetLock((object)"rdflock"))
     {
         var rdfxmlwriter = new RdfXmlWriter();
         rdfxmlwriter.Save(graph, RdfFilePath);
     }
 }
Ejemplo n.º 13
0
        /// <summary>
        /// Obtiene el RDF del dataGraph
        /// </summary>
        /// <returns></returns>
        public string GetDataGraphRDF()
        {
            System.IO.StringWriter sw           = new System.IO.StringWriter();
            RdfXmlWriter           rdfXmlWriter = new RdfXmlWriter();

            rdfXmlWriter.Save(dataGraph, sw);
            return(sw.ToString());
        }
Ejemplo n.º 14
0
        public void SaveOntology(string path)
        {
            //Assume that the Graph to be saved has already been loaded into a Ontology Propertie
            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            //Save to a File
            rdfxmlwriter.Save(Ontology, path);
        }
Ejemplo n.º 15
0
    protected void createPublic()
    {
        Graph g = new Graph();

        Session["ugraph"] = g;
        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

        rdfxmlwriter.Save(g, path_public);
    }
Ejemplo n.º 16
0
    protected void createrdf(string filename)
    {
        Graph g = new Graph();

        Session["ggraph"] = g;
        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

        rdfxmlwriter.Save(g, path_user + filename + ".rdf");
    }
Ejemplo n.º 17
0
        protected void addRDFTriple()
        {
            var list = (List <string[]>)Session["PersonalList"];

            int numberOfRows = 0;

            if (list.Count() > 0)
            {
                numberOfRows = int.Parse(list[list.Count() - 1][0].ToString().Split('/')[6].ToString());
            }

            for (int cv01 = 0; cv01 < list.Count; cv01++)
            {
                if (numberOfRows < int.Parse(list[cv01][0].ToString().Split('/')[6].ToString()))
                {
                    numberOfRows = int.Parse(list[cv01][0].ToString().Split('/')[6].ToString());
                }
            }

            //System.Diagnostics.Debug.WriteLine(list.Count() + " " + numberOfRows);

            //int numberOfRows = GridView2.Rows.Count;
            numberOfRows++;
            String dataid = numberOfRows.ToString();

            Session["Sdataid"] = dataid;
            Graph g = (Graph)Session["ggraph"];
            var   g = new Graph();

            IUriNode personID = g.CreateUriNode(UriFactory.Create("http://www.phonebook.co.uk/Person/" + numberOfRows));
            IUriNode Title    = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Title"));
            IUriNode Name     = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Name"));
            IUriNode Surname  = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Surname"));
            IUriNode Email    = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Email"));
            IUriNode Phone    = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Phone"));
            IUriNode Comments = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Comments"));

            ILiteralNode NTitle    = g.CreateLiteralNode(Session["Stitle"].ToString());
            ILiteralNode NName     = g.CreateLiteralNode(Session["Sname"].ToString());
            ILiteralNode NSurname  = g.CreateLiteralNode(Session["Ssurname"].ToString());
            ILiteralNode NEmail    = g.CreateLiteralNode(Session["Semail"].ToString().Split('>')[1].Split('<')[0].ToString());
            ILiteralNode NPhone    = g.CreateLiteralNode(Session["Snumber"].ToString());
            ILiteralNode NComments = g.CreateLiteralNode(" ");

            g.Assert(personID, Title, NTitle);
            g.Assert(personID, Name, NName);
            g.Assert(personID, Surname, NSurname);
            g.Assert(personID, Email, NEmail);
            g.Assert(personID, Phone, NPhone);
            g.Assert(personID, Comments, NComments);

            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            rdfxmlwriter.Save(g, "C:/Users/panayiotis/master/MSC PROJECT/db/" + Session["UserId"].ToString() + ".rdf");
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Saves a Graph to the Protocol Server
        /// </summary>
        /// <param name="g">Graph to save</param>
        public virtual void SaveGraph(IGraph g)
        {
            String saveUri = this._serviceUri;

            if (g.BaseUri != null)
            {
                saveUri += "?graph=" + Uri.EscapeDataString(g.BaseUri.ToString());
            }
            else
            {
                saveUri += "?default";
            }
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(UriFactory.Create(saveUri));
                request.Method      = "PUT";
                request.ContentType = MimeTypesHelper.RdfXml[0];
                request             = base.GetProxiedRequest(request);

                RdfXmlWriter writer = new RdfXmlWriter();
                writer.Save(g, new StreamWriter(request.GetRequestStream()));

#if DEBUG
                if (Options.HttpDebugging)
                {
                    Tools.HttpDebugRequest(request);
                }
#endif

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
#if DEBUG
                    if (Options.HttpDebugging)
                    {
                        Tools.HttpDebugResponse(response);
                    }
#endif
                    //If we get here then it was OK
                    response.Close();
                }
            }
            catch (WebException webEx)
            {
#if DEBUG
                if (Options.HttpDebugging)
                {
                    if (webEx.Response != null)
                    {
                        Tools.HttpDebugResponse((HttpWebResponse)webEx.Response);
                    }
                }
#endif
                throw new RdfStorageException("A HTTP Error occurred while trying to save a Graph to the Store", webEx);
            }
        }
Ejemplo n.º 19
0
        public void StorageSparqlUniformHttpProtocolPostCreateMultiple()
        {
            SparqlHttpProtocolConnector connector = SparqlGraphStoreProtocolTest.GetConnection();

            Graph g = new Graph();

            FileLoader.Load(g, "resources\\InferenceTest.ttl");

            List <Uri> uris = new List <Uri>();

            for (int i = 0; i < 10; i++)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(TestConfigManager.GetSetting(TestConfigManager.LocalGraphStoreUri));
                request.Method      = "POST";
                request.ContentType = "application/rdf+xml";

                using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
                {
                    RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
                    rdfxmlwriter.Save(g, writer);
                    writer.Close();
                }

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    //Should get a 201 Created response
                    if (response.StatusCode == HttpStatusCode.Created)
                    {
                        if (response.Headers["Location"] == null)
                        {
                            Assert.Fail("A Location: Header containing the URI of the newly created Graph should have been returned");
                        }
                        Uri graphUri = new Uri(response.Headers["Location"]);
                        uris.Add(graphUri);

                        Console.WriteLine("New Graph URI is " + graphUri.ToString());

                        Console.WriteLine("Now attempting to retrieve this Graph from the Store");
                        Graph h = new Graph();
                        connector.LoadGraph(h, graphUri);

                        Assert.AreEqual(g, h, "Graphs should have been equal");
                        Console.WriteLine("Graphs were equal as expected");
                    }
                    else
                    {
                        Assert.Fail("A 201 Created response should have been received but got a " + (int)response.StatusCode + " response");
                    }
                    response.Close();
                }
                Console.WriteLine();
            }

            Assert.IsTrue(uris.Distinct().Count() == 10, "Should have generated 10 distinct URIs");
        }
Ejemplo n.º 20
0
    protected void addUserInRDF()
    {
        var list = (List <string[]>)Session["UserList"];

        int numberOfRows = 0;

        if (list.Count() > 0)
        {
            numberOfRows = int.Parse(list[list.Count() - 1][0].ToString().Split('/')[4].ToString());
        }

        for (int cv01 = 0; cv01 < list.Count; cv01++)
        {
            if (numberOfRows < int.Parse(list[cv01][0].ToString().Split('/')[4].ToString()))
            {
                numberOfRows = int.Parse(list[cv01][0].ToString().Split('/')[4].ToString());
            }
        }

        //System.Diagnostics.Debug.WriteLine(list.Count() + " " + numberOfRows);

        //int numberOfRows = GridView2.Rows.Count;
        numberOfRows++;
        String dataid = numberOfRows.ToString();

        Session["Sdataid"] = dataid;
        Graph g = (Graph)Session["ugraph"];


        g.NamespaceMap.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/"));



        IUriNode Username   = g.CreateUriNode("foaf:accountName");
        IUriNode rdftype    = g.CreateUriNode("rdf:type");           //FOAFPERSON
        IUriNode foafPerson = g.CreateUriNode("foaf:OnlineAccount"); //FOAFPERSON

        IUriNode personID = g.CreateUriNode(UriFactory.Create("http://www.phonebook.co.uk/Person/" + numberOfRows));



        ILiteralNode NUsername = g.CreateLiteralNode(Session["UserId"].ToString());


        g.Assert(personID, Username, NUsername);
        g.Assert(personID, rdftype, foafPerson);//FOAFPERSON

        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

        rdfxmlwriter.Save(g, path_public);

        LoadPersonalData();
    }
Ejemplo n.º 21
0
        public void Write(System.Xml.XmlWriter writer)
        {
            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter(0, false);

            System.IO.StringWriter tw = new System.IO.StringWriter();
            System.Xml.XmlReader   nr;

            rdfxmlwriter.Save(this, tw);
            string str = tw.ToString().Remove(0, @"<?xml version=""1.0"" encoding=""utf-16"">".Length + 3);

            nr = System.Xml.XmlNodeReader.Create(new System.IO.MemoryStream(System.Text.Encoding.Unicode.GetBytes(str)));
            writer.WriteNode(nr, true);
        }
Ejemplo n.º 22
0
 private void GenerateRdfXmlFile(Uri subject, string targetPath, IGraph graph)
 {
     try
     {
         var rdfXmlTargetPath = targetPath + ".rdf";
         var rdfWriter        = new RdfXmlWriter();
         rdfWriter.Save(graph, rdfXmlTargetPath);
     }
     catch (Exception ex)
     {
         _progressLog.Exception(ex, "Error generating RDF/XML file for subject {0}: {1}", subject, ex.Message);
     }
 }
Ejemplo n.º 23
0
        /// <summary>
        /// https://github.com/dotnetrdf/dotnetrdf/wiki/UserGuide-Writing-RDF
        /// </summary>
        public void TesPlayWithWritingRdft()
        {
            #region Basic Usage

            IGraph g = CreateGraph();

            //Assume that the Graph to be saved has already been loaded into a variable g
            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            //Save to a File
            rdfxmlwriter.Save(g, "Example.rdf");

            //Save to a Stream
            rdfxmlwriter.Save(g, Console.Out);

            #region Writing to Strings

            //Assume that the Graph to be saved has already been loaded into a variable g
            //RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            String data1 = VDS.RDF.Writing.StringWriter.Write(g, rdfxmlwriter);

            // or

            //Assume that the Graph to be saved has already been loaded into a variable g
            //RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
            System.IO.StringWriter sw = new System.IO.StringWriter();

            //Call the Save() method to write to the StringWriter
            rdfxmlwriter.Save(g, sw);

            //We can now retrieve the written RDF by using the ToString() method of the StringWriter
            String data2 = sw.ToString();

            #endregion


            #endregion
        }
Ejemplo n.º 24
0
    protected void addRDFTriple()
    {
        var list = (List<string[]>)Session["PersonalList"];

        int numberOfRows = 0;

        if (list.Count() > 0)
            numberOfRows = int.Parse(list[list.Count() - 1][0].ToString().Split('/')[6].ToString());

        for (int cv01 = 0; cv01 < list.Count; cv01++)
        {
            if (numberOfRows < int.Parse(list[cv01][0].ToString().Split('/')[6].ToString()))
            {
                numberOfRows = int.Parse(list[cv01][0].ToString().Split('/')[6].ToString());

            }
        }

        //System.Diagnostics.Debug.WriteLine(list.Count() + " " + numberOfRows);

        //int numberOfRows = GridView2.Rows.Count;
        numberOfRows++;
        String dataid = numberOfRows.ToString();
        Session["Sdataid"] = dataid;
        Graph g = (Graph)Session["ggraph"];

        IUriNode personID = g.CreateUriNode(UriFactory.Create("http://www.phonebook.co.uk/Person/" + numberOfRows));
        IUriNode Title = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Title"));
        IUriNode Name = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Name"));
        IUriNode Surname = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Surname"));
        IUriNode Email = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Email"));
        IUriNode Phone = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Phone"));
        IUriNode Comments = g.CreateUriNode(UriFactory.Create("http://xmlns.com/foaf/0.1/Comments"));

        ILiteralNode NTitle = g.CreateLiteralNode(Session["Stitle"].ToString());
        ILiteralNode NName = g.CreateLiteralNode(Session["Sname"].ToString());
        ILiteralNode NSurname = g.CreateLiteralNode(Session["Ssurname"].ToString());
        ILiteralNode NEmail = g.CreateLiteralNode(Session["Semail"].ToString().Split('>')[1].Split('<')[0].ToString());
        ILiteralNode NPhone = g.CreateLiteralNode(Session["Snumber"].ToString());
        ILiteralNode NComments = g.CreateLiteralNode(" ");

        g.Assert(personID, Title, NTitle);
        g.Assert(personID, Name, NName);
        g.Assert(personID, Surname, NSurname);
        g.Assert(personID, Email, NEmail);
        g.Assert(personID, Phone, NPhone);
        g.Assert(personID, Comments, NComments);

        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
        rdfxmlwriter.Save(g, "C:/Users/panayiotis/master/MSC PROJECT/db/" + Session["UserId"].ToString() + ".rdf");
    }
Ejemplo n.º 25
0
        /// <summary>
        /// Updates a Graph on the Protocol Server
        /// </summary>
        /// <param name="graphUri">URI of the Graph to update</param>
        /// <param name="additions">Triples to be added</param>
        /// <param name="removals">Triples to be removed</param>
        /// <remarks>
        /// <strong>Note:</strong> The SPARQL Graph Store HTTP Protocol for Graph Management only supports the addition of Triples to a Graph and does not support removal of Triples from a Graph.  If you attempt to remove Triples then an <see cref="RdfStorageException">RdfStorageException</see> will be thrown
        /// </remarks>
        public virtual void UpdateGraph(string graphUri, IEnumerable <Triple> additions, IEnumerable <Triple> removals)
        {
            if (removals != null && removals.Any())
            {
                throw new RdfStorageException("Unable to Update a Graph since this update requests that Triples be removed from the Graph which the SPARQL Graph Store HTTP Protocol for Graph Management does not support");
            }

            if (additions == null || !additions.Any())
            {
                return;
            }

            String updateUri = this._serviceUri;

            if (graphUri != null && !graphUri.Equals(String.Empty))
            {
                updateUri += "?graph=" + Uri.EscapeDataString(graphUri);
            }
            else
            {
                updateUri += "?default";
            }

            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(UriFactory.Create(updateUri));
                request.Method      = "POST";
                request.ContentType = MimeTypesHelper.RdfXml[0];
                request             = base.ApplyRequestOptions(request);

                RdfXmlWriter writer = new RdfXmlWriter();
                Graph        g      = new Graph();
                g.Assert(additions);
                writer.Save(g, new StreamWriter(request.GetRequestStream()));

                Tools.HttpDebugRequest(request);

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    Tools.HttpDebugResponse(response);
                    // If we get here then it was OK
                    response.Close();
                }
            }
            catch (WebException webEx)
            {
                throw StorageHelper.HandleHttpError(webEx, "updating a Graph in");
            }
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Internal implementation of adding a Graphs content to the Store
        /// </summary>
        /// <param name="g">Graph to add to the Store</param>
        /// <param name="servicePath">Service at the Store to add to</param>
        private void AddInternal(IGraph g, String servicePath)
        {
            HttpWebRequest  request  = null;
            HttpWebResponse response = null;

            try
            {
                //Create the Request
                request             = this.CreateRequest(servicePath, new Dictionary <string, string>());
                request.Method      = "POST";
                request.ContentType = MimeTypesHelper.RdfXml[0];

                //Write the RDF/XML to the Request Stream
                RdfXmlWriter writer = new RdfXmlWriter();
                writer.Save(g, new StreamWriter(request.GetRequestStream()));

#if DEBUG
                if (Options.HttpDebugging)
                {
                    Tools.HttpDebugRequest(request);
                }
#endif

                //Make the Request
                using (response = (HttpWebResponse)request.GetResponse())
                {
#if DEBUG
                    if (Options.HttpDebugging)
                    {
                        Tools.HttpDebugResponse(response);
                    }
#endif
                    //OK if we get here!
                    response.Close();
                }
            }
            catch (WebException webEx)
            {
                if (webEx.Response != null)
                {
                    //Got a Response so we can analyse the Response Code
                    response = (HttpWebResponse)webEx.Response;
                    int code = (int)response.StatusCode;
                    throw Error(code, webEx);
                }
                //Didn't get a Response
                throw;
            }
        }
        public void StorageSparqlUniformHttpProtocolPostCreate()
        {
            SparqlHttpProtocolConnector connector = SparqlGraphStoreProtocolTest.GetConnection();

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(TestConfigManager.GetSetting(TestConfigManager.LocalGraphStoreUri));

            request.Method      = "POST";
            request.ContentType = "application/rdf+xml";

            Graph g = new Graph();

            FileLoader.Load(g, "resources\\InferenceTest.ttl");

            using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
            {
                RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
                rdfxmlwriter.Save(g, writer);
                writer.Close();
            }

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                //Should get a 201 Created response
                if (response.StatusCode == HttpStatusCode.Created)
                {
                    if (response.Headers["Location"] == null)
                    {
                        Assert.True(false, "A Location: Header containing the URI of the newly created Graph should have been returned");
                    }
                    Uri graphUri = new Uri(response.Headers["Location"]);

                    Console.WriteLine("New Graph URI is " + graphUri.ToString());

                    Console.WriteLine("Now attempting to retrieve this Graph from the Store");
                    Graph h = new Graph();
                    connector.LoadGraph(h, graphUri);

                    TestTools.ShowGraph(h);

                    Assert.Equal(g, h);
                }
                else
                {
                    Assert.True(false, "A 201 Created response should have been received but got a " + (int)response.StatusCode + " response");
                }
                response.Close();
            }
        }
 public void TestWriteSimpleRdf()
 {
     var g = new Graph();
     g.Assert(g.CreateUriNode(new Uri("http://example.org/s")),
         g.CreateUriNode(new Uri("http://example.org/p")),
         g.CreateLiteralNode("o"));
     //g.Assert(g.CreateUriNode(new Uri("http://example.org/s")),
     //    g.CreateUriNode(new Uri("http://example.org/ns2/p")),
     //    g.CreateLiteralNode("Another o"));
     using (var stringWriter = new System.IO.StringWriter())
     {
         var writer = new RdfXmlWriter();
         writer.Save(g, stringWriter);
         var buff = stringWriter.ToString();
         XDocument doc = XDocument.Parse(buff); // Fails
     }
 }
Ejemplo n.º 29
0
        static void Main(string[] args)
        {
            InitContext();
            CreateThingsTopology();

            IGraph g         = new Graph();
            IList  graphList = store.Graphs.ToList();

            foreach (IGraph currentGraph in graphList)
            {
                g.Merge(currentGraph);
            }

            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            rdfxmlwriter.Save(g, "C:\\output.rdf");
        }
Ejemplo n.º 30
0
        public void WritingSerializeOwnOneOf()
        {
            //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 <= 10; 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 FastRdfXmlWriter();
            writer.Save(g, "owl-one-of-fast.rdf");
            Console.WriteLine("Saved OK using FastRdfXmlWriter");
            Console.WriteLine();

            //Now check that the Graphs are all equivalent
            Graph h = new Graph();
            FileLoader.Load(h, "owl-one-of.rdf");
            Assert.AreEqual(g, h, "Graphs should be equal (RdfXmlWriter)");
            Console.WriteLine("RdfXmlWriter serialization was OK");
            Console.WriteLine();

            Graph j = new Graph();
            FileLoader.Load(j, "owl-one-of-fast.rdf");
            Assert.AreEqual(g, j, "Graphs should be equal (FastRdfXmlWriter)");
            Console.WriteLine("FastRdfXmlWriter serialization was OK");
        }
Ejemplo n.º 31
0
    protected void addRDFTriple()
    {
        var   list = (List <string[]>)Session["PersonalList"];
        Graph g    = (Graph)Session["ggraph"];

        g.NamespaceMap.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/"));
        g.NamespaceMap.AddNamespace("rdfs", new Uri("http://www.w3.org/2000/01/rdf-schema#"));
        g.NamespaceMap.AddNamespace("v", new Uri("http://www.w3.org/2006/vcard/ns#"));

        IUriNode personID = g.CreateUriNode(UriFactory.Create(Session["Sdataid"].ToString()));
        IUriNode Title    = g.CreateUriNode("foaf:title");
        IUriNode Name     = g.CreateUriNode("foaf:name");
        IUriNode Surname  = g.CreateUriNode("foaf:familyName");
        IUriNode Email    = g.CreateUriNode("foaf:mbox");
        IUriNode Phone    = g.CreateUriNode("foaf:phone");
        IUriNode Faculty  = g.CreateUriNode("rdfs:label");
        IUriNode Comments = g.CreateUriNode("rdfs:comment");

        IUriNode rdftype    = g.CreateUriNode("rdf:type");    //FOAFPERSON
        IUriNode foafPerson = g.CreateUriNode("foaf:Person"); //FOAFPERSON

        ILiteralNode NTitle   = g.CreateLiteralNode(Session["Stitle"].ToString());
        ILiteralNode NName    = g.CreateLiteralNode(Session["Sname"].ToString());
        ILiteralNode NSurname = g.CreateLiteralNode(Session["Ssurname"].ToString());
        IUriNode     NPhone   = g.CreateUriNode(UriFactory.Create("tel:" + Session["Snumber"].ToString()));
        IUriNode     NEmail   = g.CreateUriNode(UriFactory.Create("mailto:" + Session["Semail"].ToString().Split('>')[1].Split('<')[0].ToString()));

        ILiteralNode NFaculty  = g.CreateLiteralNode(Session["Sfaculty"].ToString());
        ILiteralNode NComments = g.CreateLiteralNode(" ");

        g.Assert(personID, Title, NTitle);
        g.Assert(personID, Name, NName);
        g.Assert(personID, Surname, NSurname);
        g.Assert(personID, Email, NEmail);
        g.Assert(personID, Phone, NPhone);
        g.Assert(personID, Faculty, NFaculty);
        g.Assert(personID, Comments, NComments);
        g.Assert(personID, rdftype, foafPerson); //FOAFPERSON

        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

        rdfxmlwriter.Save(g, path_user + Session["UserId"].ToString() + ".rdf");

        LoadPersonalData();
    }
Ejemplo n.º 32
0
        /// <summary>
        /// https://github.com/dotnetrdf/dotnetrdf/wiki/UserGuide-Hello-World
        /// </summary>
        public void PlayWithHelloWorld()
        {
            IGraph g = CreateGraph();

            // Console.ReadLine();

            NTriplesWriter ntwriter = new NTriplesWriter();

            ntwriter.Save(g, "HelloWorld.nt");

            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            rdfxmlwriter.Save(g, "HelloWorld.rdf");

            CompressingTurtleWriter turtleWriter = new CompressingTurtleWriter();

            turtleWriter.Save(g, "HelloWorld.ttl");
        }
        public void TestWriteSimpleRdf()
        {
            var g = new Graph();

            g.Assert(g.CreateUriNode(new Uri("http://example.org/s")),
                     g.CreateUriNode(new Uri("http://example.org/p")),
                     g.CreateLiteralNode("o"));
            //g.Assert(g.CreateUriNode(new Uri("http://example.org/s")),
            //    g.CreateUriNode(new Uri("http://example.org/ns2/p")),
            //    g.CreateLiteralNode("Another o"));
            using (var stringWriter = new StringWriter())
            {
                var writer = new RdfXmlWriter();
                writer.Save(g, stringWriter);
                var       buff = stringWriter.ToString();
                XDocument doc  = XDocument.Parse(buff); // Fails
            }
        }
Ejemplo n.º 34
0
    protected void addUserInRDF()
    {
        var list = (List<string[]>)Session["UserList"];

        int numberOfRows = 0;

        if (list.Count() > 0)
            numberOfRows = int.Parse(list[list.Count() - 1][0].ToString().Split('/')[4].ToString());

        for (int cv01 = 0; cv01 < list.Count; cv01++)
        {
           if (numberOfRows < int.Parse(list[cv01][0].ToString().Split('/')[4].ToString()))
           {
            numberOfRows =  int.Parse(list[cv01][0].ToString().Split('/')[4].ToString());

            }
        }

        //System.Diagnostics.Debug.WriteLine(list.Count() + " " + numberOfRows);

        //int numberOfRows = GridView2.Rows.Count;
        numberOfRows++;
        String dataid = numberOfRows.ToString();
        Session["Sdataid"] = dataid;
        Graph g = (Graph)Session["ugraph"];

        g.NamespaceMap.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/"));

        IUriNode Username = g.CreateUriNode("foaf:accountName");
        IUriNode rdftype = g.CreateUriNode("rdf:type");//FOAFPERSON
        IUriNode foafPerson = g.CreateUriNode("foaf:OnlineAccount");//FOAFPERSON

        IUriNode personID = g.CreateUriNode(UriFactory.Create("http://www.phonebook.co.uk/Person/" + numberOfRows));

        ILiteralNode NUsername = g.CreateLiteralNode(Session["UserId"].ToString());

        g.Assert(personID, Username, NUsername);
        g.Assert(personID, rdftype, foafPerson);//FOAFPERSON

        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
        rdfxmlwriter.Save(g, path_public);

        LoadPersonalData();
    }
Ejemplo n.º 35
0
    protected void addRDFTriple()
    {
        var list = (List<string[]>)Session["PersonalList"];
        Graph g = (Graph)Session["ggraph"];

        g.NamespaceMap.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/"));
        g.NamespaceMap.AddNamespace("rdfs", new Uri("http://www.w3.org/2000/01/rdf-schema#"));
        g.NamespaceMap.AddNamespace("v", new Uri("http://www.w3.org/2006/vcard/ns#"));

        IUriNode personID = g.CreateUriNode(UriFactory.Create(Session["Sdataid"].ToString()));
        IUriNode Title = g.CreateUriNode("foaf:title");
        IUriNode Name = g.CreateUriNode("foaf:name");
        IUriNode Surname = g.CreateUriNode("foaf:familyName");
        IUriNode Email = g.CreateUriNode("foaf:mbox");
        IUriNode Phone = g.CreateUriNode("foaf:phone");
        IUriNode Faculty = g.CreateUriNode("rdfs:label");
        IUriNode Comments = g.CreateUriNode("rdfs:comment");

        IUriNode rdftype = g.CreateUriNode("rdf:type");//FOAFPERSON
        IUriNode foafPerson = g.CreateUriNode("foaf:Person");//FOAFPERSON

        ILiteralNode NTitle = g.CreateLiteralNode(Session["Stitle"].ToString());
        ILiteralNode NName = g.CreateLiteralNode(Session["Sname"].ToString());
        ILiteralNode NSurname = g.CreateLiteralNode(Session["Ssurname"].ToString());
        IUriNode NPhone = g.CreateUriNode(UriFactory.Create("tel:" + Session["Snumber"].ToString()));
        IUriNode NEmail = g.CreateUriNode(UriFactory.Create("mailto:" + Session["Semail"].ToString().Split('>')[1].Split('<')[0].ToString()));

        ILiteralNode NFaculty = g.CreateLiteralNode(Session["Sfaculty"].ToString());
        ILiteralNode NComments = g.CreateLiteralNode(" ");

        g.Assert(personID, Title, NTitle);
        g.Assert(personID, Name, NName);
        g.Assert(personID, Surname, NSurname);
        g.Assert(personID, Email, NEmail);
        g.Assert(personID, Phone, NPhone);
        g.Assert(personID, Faculty, NFaculty);
        g.Assert(personID, Comments, NComments);
        g.Assert(personID, rdftype, foafPerson); //FOAFPERSON

        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
        rdfxmlwriter.Save(g, path_user + Session["UserId"].ToString() + ".rdf");

        LoadPersonalData();
    }
Ejemplo n.º 36
0
        public void HelloWorld()
        {
            //Fill in the code shown on this page here to build your hello world application
            Graph g = new Graph();

            IUriNode     dotNetRDF    = g.CreateUriNode(UriFactory.Create("http://www.dotnetrdf.org"));
            IUriNode     says         = g.CreateUriNode(UriFactory.Create("http://example.org/says"));
            ILiteralNode helloWorld   = g.CreateLiteralNode("Hello World");
            ILiteralNode bonjourMonde = g.CreateLiteralNode("Bonjour tout le Monde", "fr");

            g.Assert(new Triple(dotNetRDF, says, helloWorld));
            g.Assert(new Triple(dotNetRDF, says, bonjourMonde));

            Console.WriteLine();
            Console.WriteLine("Raw Output");
            Console.WriteLine();
            foreach (Triple t in g.Triples)
            {
                Console.WriteLine(t.ToString());
            }

            // RDF is written out using one of the Writer types.
            // Use the Save method on the graph to serialise the triples in
            // the specified format to the provided write.
            Console.WriteLine();
            Console.WriteLine("NTriples");
            Console.WriteLine();
            NTriplesWriter ntwriter = new NTriplesWriter();
            var            sw       = new System.IO.StringWriter();

            ntwriter.Save(g, sw);
            Console.WriteLine(sw.ToString());

            Console.WriteLine();
            Console.WriteLine("RDF XML");
            Console.WriteLine();
            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();

            sw = new System.IO.StringWriter();
            rdfxmlwriter.Save(g, sw);
            Console.WriteLine(sw.ToString());

            // view the Test Results output to see the different serialisations.
        }
Ejemplo n.º 37
0
        /// <summary>
        /// Saves a Graph to the Store
        /// </summary>
        /// <param name="g">Graph to save</param>
        public void SaveGraph(IGraph g)
        {
            HttpWebRequest request;
            Dictionary <String, String> requestParams = new Dictionary <string, string>();

            if (g.BaseUri != null)
            {
                requestParams.Add("context", g.BaseUri.ToString());
                request = this.CreateRequest("/statements", MimeTypesHelper.Any, "PUT", requestParams);
            }
            else
            {
                request = this.CreateRequest("/statements", MimeTypesHelper.Any, "POST", requestParams);
            }

            IRdfWriter rdfWriter = new RdfXmlWriter();

            request.ContentType = MimeTypesHelper.RdfXml[0];
            using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
            {
                rdfWriter.Save(g, writer);
                writer.Close();
            }

#if DEBUG
            if (Options.HttpDebugging)
            {
                Tools.HttpDebugRequest(request);
            }
#endif

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
#if DEBUG
                if (Options.HttpDebugging)
                {
                    Tools.HttpDebugResponse(response);
                }
#endif
                //If we get here then operation completed OK
                response.Close();
            }
        }
        public void ParsingBaseUriAssignmentRdfXml()
        {
            Graph g = new Graph();
            g.BaseUri = new Uri("http://example.org/RdfXml");

            System.IO.StringWriter strWriter = new System.IO.StringWriter();
            RdfXmlWriter writer = new RdfXmlWriter();
            writer.Save(g, strWriter);

            Console.WriteLine("Original Base URI: " + ShowBaseUri(g.BaseUri));

            Console.WriteLine("Output using RdfXmlWriter:");
            Console.WriteLine(strWriter.ToString());
            Console.WriteLine();

            Graph h = new Graph();
            RdfXmlParser parser = new RdfXmlParser();
            parser.Load(h, new System.IO.StringReader(strWriter.ToString()));

            Console.WriteLine("Base URI after round-trip using RdfXmlWriter: " + ShowBaseUri(h.BaseUri));
            Assert.IsNotNull(h.BaseUri, "Base URI should not be null");

            strWriter = new System.IO.StringWriter();
            FastRdfXmlWriter fastWriter = new FastRdfXmlWriter();
            fastWriter.Save(g, strWriter);

            Console.WriteLine("Output using FastRdfXmlWriter:");
            Console.WriteLine(strWriter.ToString());
            Console.WriteLine();

            Graph i = new Graph();
            parser.Load(i, new System.IO.StringReader(strWriter.ToString()));

            Console.WriteLine("Base URI after round-trip to FastRdfXmlWriter: " + ShowBaseUri(h.BaseUri));
            Assert.IsNotNull(i.BaseUri, "Base URI should not be null");
        }
Ejemplo n.º 39
0
 public Stream ExecuteQuery(string queryExpression, IList<string> datasetGraphUris)
 {
     var parser = new SparqlQueryParser();
     var query = parser.ParseFromString(queryExpression);
     var sparqlResults = _queryProcessor.ProcessQuery(query);
     var memoryStream = new MemoryStream();
     using (var streamWriter = new StreamWriter(memoryStream, Encoding.UTF8))
     {
         if (sparqlResults is SparqlResultSet)
         {
             var resultSet = sparqlResults as SparqlResultSet;
             var writer = new SparqlXmlWriter();
             writer.Save(resultSet, streamWriter);
         }
         else if (sparqlResults is IGraph)
         {
             var g = sparqlResults as IGraph;
             var writer = new RdfXmlWriter();
             writer.Save(g, streamWriter);
         }
     }
     return new MemoryStream(memoryStream.ToArray());
     //return new MemoryStream(Encoding.UTF8.GetBytes(buff.ToString()), false);
 }
        /// <summary>
        /// Saves a Graph to the Protocol Server
        /// </summary>
        /// <param name="g">Graph to save</param>
        public virtual void SaveGraph(IGraph g)
        {
            String saveUri = this._serviceUri;
            if (g.BaseUri != null)
            {
                saveUri += "?graph=" + Uri.EscapeDataString(g.BaseUri.ToString());
            }
            else
            {
                saveUri += "?default";
            }
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(saveUri));
                request.Method = "PUT";
                request.ContentType = MimeTypesHelper.RdfXml[0];
                RdfXmlWriter writer = new RdfXmlWriter();
                writer.Save(g, new StreamWriter(request.GetRequestStream()));

#if DEBUG
                if (Options.HttpDebugging)
                {
                    Tools.HttpDebugRequest(request);
                }
#endif

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
#if DEBUG
                    if (Options.HttpDebugging)
                    {
                        Tools.HttpDebugResponse(response);
                    }
#endif
                    //If we get here then it was OK
                    response.Close();
                }
            }
            catch (WebException webEx)
            {
#if DEBUG
                if (Options.HttpDebugging)
                {
                    if (webEx.Response != null) Tools.HttpDebugResponse((HttpWebResponse)webEx.Response);
                }
#endif
                throw new RdfStorageException("A HTTP Error occurred while trying to save a Graph to the Store", webEx);
            }
        }
Ejemplo n.º 41
0
 public void WriteToXML(IList<RDFTriple> triples, string outputFile)
 {
     Graph graph = CreateGraph(triples);
     var rdfxmlwriter = new RdfXmlWriter();
     rdfxmlwriter.Save(graph, outputFile);
 }
Ejemplo n.º 42
0
        /// <summary>
        /// Saves a Graph to the Store
        /// </summary>
        /// <param name="g">Graph to save</param>
        public void SaveGraph(IGraph g)
        {
            HttpWebRequest request;
            Dictionary<String, String> requestParams = new Dictionary<string, string>();
            if (g.BaseUri != null)
            {
                requestParams.Add("context", g.BaseUri.ToString());
                request = this.CreateRequest("/statements", MimeTypesHelper.Any, "PUT", requestParams);
            }
            else
            {
                request = this.CreateRequest("/statements", MimeTypesHelper.Any, "POST", requestParams);
            }

            IRdfWriter rdfWriter = new RdfXmlWriter();
            request.ContentType = MimeTypesHelper.RdfXml[0];
            using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
            {
                rdfWriter.Save(g, writer);
                writer.Close();
            }

#if DEBUG
            if (Options.HttpDebugging)
            {
                Tools.HttpDebugRequest(request);
            }
#endif

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
#if DEBUG
                if (Options.HttpDebugging)
                {
                    Tools.HttpDebugResponse(response);
                }
#endif
                //If we get here then operation completed OK
                response.Close();
            }
        }
Ejemplo n.º 43
0
    protected void RemoveFavorClick(object sender, EventArgs e)
    {
        GridViewRow gvRow = (GridViewRow)(sender as Control).Parent.Parent;
        int index = gvRow.RowIndex;
        DataTable dt2Datas = (DataTable)ViewState["dt2Datas"];

        //delete from rdf
        Graph g = new Graph();
        FileLoader.Load(g, path_user + Session["UserId"].ToString() + ".rdf");

        string Title = dt2Datas.Rows[index]["Title"].ToString();
        string Name = dt2Datas.Rows[index]["Name"].ToString();
        string Surname = dt2Datas.Rows[index]["Surname"].ToString();
        string Email = dt2Datas.Rows[index]["E-mail"].ToString();
        Email = "mailto:" + Email;
        string Phone = dt2Datas.Rows[index]["Phone"].ToString();
        Phone = "tel:" + Phone;
        string dataid = dt2Datas.Rows[index]["dataid"].ToString();
        string Comments = dt2Datas.Rows[index]["Comments"].ToString();
        string Faculty = dt2Datas.Rows[index]["Faculty"].ToString();

        g.NamespaceMap.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/"));
        g.NamespaceMap.AddNamespace("rdfs", new Uri("http://www.w3.org/2000/01/rdf-schema#"));
        g.NamespaceMap.AddNamespace("v", new Uri("http://www.w3.org/2006/vcard/ns#"));

        IUriNode person = g.CreateUriNode(UriFactory.Create(dataid));
        IUriNode ITitle = g.CreateUriNode("foaf:title");
        IUriNode IName = g.CreateUriNode("foaf:name");
        IUriNode ISurname = g.CreateUriNode("foaf:familyName");
        IUriNode IEmail = g.CreateUriNode("foaf:mbox");
        IUriNode IPhone = g.CreateUriNode("foaf:phone");
        IUriNode IFaculty = g.CreateUriNode("rdfs:label");
        IUriNode IComments = g.CreateUriNode("rdfs:comment");
        IUriNode rdftype = g.CreateUriNode("rdf:type");//FOAFPERSON
        IUriNode foafPerson = g.CreateUriNode("foaf:Person");//FOAFPERSON

           // IUriNode NPhone = g.CreateUriNode(UriFactory.Create("tel:" + Session["Snumber"].ToString()));
          //  IUriNode NEmail = g.CreateUriNode(UriFactory.Create("mailto:" + Session["Semail"].ToString().Split('>')[1].Split('<')[0].ToString()));

        g.Retract(person, ITitle, g.CreateLiteralNode(Title));
        g.Retract(person, IName, g.CreateLiteralNode(Name));
        g.Retract(person, ISurname, g.CreateLiteralNode(Surname));
        g.Retract(person, IEmail, g.CreateUriNode(UriFactory.Create((Email))));
        g.Retract(person, IPhone, g.CreateUriNode(UriFactory.Create((Phone))));
        g.Retract(person, IComments, g.CreateLiteralNode(Comments));
        g.Retract(person, IFaculty, g.CreateLiteralNode(Faculty));
        g.Retract(new Triple(person, rdftype, foafPerson));//FOAFPERSON

        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
        rdfxmlwriter.Save(g, path_user + Session["UserId"].ToString() + ".rdf");

        //remove from datatable
        dt2Datas.Rows[index].Delete();
        dt2Datas.AcceptChanges();
        GridView2.DataSource = dt2Datas;
        GridView2.DataBind();

        /*    if (faculty.Equals("&nbsp;"))
            faculty = "";
        else if (faculty.Contains("&amp;"))
            faculty = faculty.Replace("&amp;", "&");
        */
        if (GridView1.Enabled)
        {

            for (int rows = 0; rows < GridView1.Rows.Count; rows++)
            {
                //System.Diagnostics.Debug.WriteLine("AHA! AHAAAAAAAAA" + Phone + "=" + GridView1.Rows[rows].Cells[4].Text + "=" + GridView1.Rows[rows].Cells[5].Text.Replace("&nbsp;", ""));
                if ((Title == GridView1.Rows[rows].Cells[0].Text) &&//title
                  (Name == GridView1.Rows[rows].Cells[1].Text) && //name
                 (Surname == GridView1.Rows[rows].Cells[2].Text) &&//surname
                 (Phone.Split(':')[1] == GridView1.Rows[rows].Cells[4].Text) &&    //phone
                    (Email == GridView1.Rows[rows].Cells[3].Text.Split('=')[1].Split('>')[0]) &&//email
                    ((Faculty == GridView1.Rows[rows].Cells[5].Text.Replace("&amp;", "&")) ||
                    (Faculty == GridView1.Rows[rows].Cells[5].Text.Replace("&nbsp;", "")) ) //faculty */
                  )
                {
                   // System.Diagnostics.Debug.WriteLine("AHA! AHAAAAAAAAA" + rows);
                    (GridView1.Rows[rows].FindControl("btnAddFavor")  as Button).Enabled = true;
                }
            }
        }
    }
Ejemplo n.º 44
0
        public override Stream GetFragment(string id, string contentType)
        {
            // need to see which definition we match
                ResourcePublishingDefinition definition = null;
                UriTemplateMatch match = null;
                foreach (var resourcePublishingDefinition in _publishingDefinitions)
                {
                    var newuri = new Uri(id);
                    match = resourcePublishingDefinition.UriTemplate.Match(resourcePublishingDefinition.ResourcePrefix, newuri);
                    if (match != null)
                    {
                        definition = resourcePublishingDefinition;
                        break;
                    }
                }

                if (definition == null) { throw new Exception("Unable to find matching definition for uri " + id); }

                var sb = new StringBuilder();
                foreach (var generationDefinition in definition.FragmentGenerationDefinitions)
                {
                    try
                    {
                        var data = ExecuteQuery(_dataSourceConnectionString, generationDefinition.FragmentQuery.Replace("[[id]]", match.BoundVariables["id"]));
                        foreach (DataRow row in data.Rows)
                        {
                            var dra = new DbDataRow(row);
                            foreach (var line in generationDefinition.RdfTemplateLines)
                            {
                                var linePattern = new NTripleLinePattern(line);
                                linePattern.GenerateNTriples(sb, dra, generationDefinition.GenericTemplateExcludeColumns, contentType.Equals("xml"));
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Logging.LogError(1, "Error processing definition {0} {1} {2} {3}", ex.Message, generationDefinition.SnapshotQuery, _dataSourceConnectionString, ex.StackTrace);
                    }
                }

                try
                {
                    var g = new Graph();
                    var parser = new NTriplesParser(TokenQueueMode.SynchronousBufferDuringParsing);
                    var triplesStr = sb.ToString();
                    parser.Load(g, new StringReader(triplesStr));

                    if (contentType.Equals("xml"))
                    {
                        var ms = new MemoryStream();
                        var sw = new StreamWriter(ms, Encoding.UTF8);
                        var rdfxmlwriter = new RdfXmlWriter();

                        var strw = new System.IO.StringWriter();
                        rdfxmlwriter.Save(g, strw);
                        var data = strw.ToString();

                        data = data.Replace("~~~2B~~~", "%2B");
                        data = data.Replace("~~~SLASH~~~", "%2F");
                        data = data.Replace("utf-16", "utf-8");
                        sw.Write(data);
                        sw.Flush();
                        ms.Seek(0, SeekOrigin.Begin);
                        return ms;
                    }
                    else
                    {
                        var ms = new MemoryStream();
                        var sw = new StreamWriter(ms);
                        sw.Write(triplesStr);
                        sw.Flush();
                        ms.Seek(0, SeekOrigin.Begin);
                        return ms;
                    }
                }
                catch (Exception ex)
                {
                    Logging.LogError(1, "Error getting fragment {0} {1}", ex.Message, ex.StackTrace);
                    throw;
                }
        }
        /// <summary>
        /// Internal implementation of Updating a Store by POSTing a ChangeSet to it
        /// </summary>
        /// <param name="additions">Triples to be added</param>
        /// <param name="removals">Triples to be removed</param>
        /// <param name="servicePath">Service to post ChangeSet to</param>
        /// <returns></returns>
        private TalisUpdateResult UpdateInternal(IEnumerable<Triple> additions, IEnumerable<Triple> removals, String servicePath)
        {
            HttpWebRequest request = null;
            HttpWebResponse response = null;

            try
            {
                //Generate the ChangeSet Batch
                IGraph g = this.GenerateChangeSet(additions, removals);
                if (g == null) return TalisUpdateResult.NotRequired; //Null so no changes need persisting
                if (g.IsEmpty) return TalisUpdateResult.NotRequired; //Empty so no changes need persisting

                //Create the Request
                request = this.CreateRequest(servicePath, new Dictionary<string, string>());
                request.Method = "POST";
                request.ContentType = TalisChangeSetMIMEType;

                //Write the RDF/XML to the Request Stream
                RdfXmlWriter writer = new RdfXmlWriter();
                writer.Save(g, new StreamWriter(request.GetRequestStream()));

#if DEBUG
                if (Options.HttpDebugging)
                {
                    Tools.HttpDebugRequest(request);
                }
#endif

                //Make the Request
                using (response = (HttpWebResponse)request.GetResponse())
                {
#if DEBUG
                    if (Options.HttpDebugging)
                    {
                        Tools.HttpDebugResponse(response);
                    }
#endif

                    //What sort of Update Result did we get?
                    int code = (int)response.StatusCode;
                    response.Close();
                    if (code == 200 || code == 201)
                    {
                        return TalisUpdateResult.Synchronous;
                    }
                    else if (code == 202)
                    {
                        return TalisUpdateResult.Asynchronous;
                    }
                    else if (code == 204)
                    {
                        return TalisUpdateResult.Done;
                    }
                    else
                    {
                        return TalisUpdateResult.Unknown;
                    }
                }
            }
            catch (WebException webEx)
            {
                if (webEx.Response != null)
                {
                    //Got a Response so we can analyse the Response Code
                    response = (HttpWebResponse)webEx.Response;
                    int code = (int)response.StatusCode;
                    throw Error(code, webEx);
                }
                //Didn't get a Response
                throw;
            }
        }
Ejemplo n.º 46
0
    protected void GV2_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        GridViewRow row = GridView2.Rows[e.RowIndex];
        string UpdatedComments = ((TextBox)(row.Cells[7].Controls[0])).Text;

        if (UpdatedComments.Length > 30)
        {
            string script = "alert(\"Please use fewer than 30 letters for your comments\");";
            ScriptManager.RegisterStartupScript(this, this.GetType(),
                          "ServerControlScript", script, true);
            return;
        }

        Graph g = new Graph();
        FileLoader.Load(g, path_user + Session["UserId"].ToString() + ".rdf");
        //Retrieve the table from the session object.
        DataTable dt2Datas = (DataTable)ViewState["dt2Datas"];

        //Update the values.

        dt2Datas.Rows[row.DataItemIndex]["Comments"] = ((TextBox)(row.Cells[7].Controls[0])).Text;

        //RDF
        string Title = Session["STitle"].ToString();
        string Name = Session["SName"].ToString();
        string Surname = Session["SSurname"].ToString();
        string Email = Session["SE-mail"].ToString();
        Email = "mailto:" + Email;
        string Phone = Session["SPhone"].ToString();
        Phone = "tel:" + Phone;
        string dataid = Session["Sdataid"].ToString();
        string Comments = Session["SComments"].ToString();
        string Faculty = Session["SFaculty"].ToString();

        //System.Diagnostics.Debug.WriteLine(" Comments1=" + Comments);

        g.NamespaceMap.AddNamespace("foaf", new Uri("http://xmlns.com/foaf/0.1/"));
        g.NamespaceMap.AddNamespace("rdfs", new Uri("http://www.w3.org/2000/01/rdf-schema#"));
        g.NamespaceMap.AddNamespace("v", new Uri("http://www.w3.org/2006/vcard/ns#"));

        IUriNode person = g.CreateUriNode(UriFactory.Create(dataid));
        IUriNode ITitle = g.CreateUriNode("foaf:title");
        IUriNode IName = g.CreateUriNode("foaf:name");
        IUriNode ISurname = g.CreateUriNode("foaf:familyName");
        IUriNode IEmail = g.CreateUriNode("foaf:mbox");
        IUriNode IPhone = g.CreateUriNode("foaf:phone");
        IUriNode IFaculty = g.CreateUriNode("rdfs:label");
        IUriNode IComments = g.CreateUriNode("rdfs:comment");
        IUriNode rdftype = g.CreateUriNode("rdf:type");//FOAFPERSON
        IUriNode foafPerson = g.CreateUriNode("foaf:Person");//FOAFPERSON

        g.Retract(person, ITitle, g.CreateLiteralNode(Title));
        g.Retract(person, IName, g.CreateLiteralNode(Name));
        g.Retract(person, ISurname, g.CreateLiteralNode(Surname));
        g.Retract(person, IEmail, g.CreateUriNode(UriFactory.Create((Email))));
        g.Retract(person, IPhone, g.CreateUriNode(UriFactory.Create((Phone))));
        g.Retract(person, IComments, g.CreateLiteralNode(Comments));
        g.Retract(person, IFaculty, g.CreateLiteralNode(Faculty));
        g.Retract(person, rdftype, foafPerson); //FOAFPERSON

        RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
        rdfxmlwriter.Save(g, path_user + Session["UserId"].ToString() + ".rdf");

        g.Assert(person, ITitle, g.CreateLiteralNode(Title));
        g.Assert(person, IName, g.CreateLiteralNode(Name));
        g.Assert(person, ISurname, g.CreateLiteralNode(Surname));
        g.Assert(person, IEmail, g.CreateUriNode(UriFactory.Create((Email))));
        g.Assert(person, IPhone, g.CreateUriNode(UriFactory.Create((Phone))));
        g.Assert(person, IFaculty, g.CreateLiteralNode(Faculty));
        g.Assert(person, rdftype, foafPerson); //FOAFPERSON

        g.Assert(person, IComments, g.CreateLiteralNode(UpdatedComments));
           // System.Diagnostics.Debug.WriteLine(" Comments2=" + UpdatedComments);
        rdfxmlwriter.Save(g, path_user + Session["UserId"].ToString() + ".rdf");
        LoadPersonalData();
        //END RDF

        //Reset the edit index.
        GridView2.EditIndex = -1;
        GridView2.DataSource = dt2Datas;
        //Bind data to the GridView control.
        GridView2.DataBind();
        //ViewState["dt2Datas"] = dt2Datas;
    }
        public void StorageSparqlUniformHttpProtocolPostCreateMultiple()
        {
            SparqlHttpProtocolConnector connector = new SparqlHttpProtocolConnector("http://localhost/demos/server/");

            Graph g = new Graph();
            FileLoader.Load(g, "InferenceTest.ttl");

            List<Uri> uris = new List<Uri>();
            for (int i = 0; i < 10; i++)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/demos/server/");
                request.Method = "POST";
                request.ContentType = "application/rdf+xml";

                using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
                {
                    RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
                    rdfxmlwriter.Save(g, writer);
                    writer.Close();
                }

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    //Should get a 201 Created response
                    if (response.StatusCode == HttpStatusCode.Created)
                    {
                        if (response.Headers["Location"] == null) Assert.Fail("A Location: Header containing the URI of the newly created Graph should have been returned");
                        Uri graphUri = new Uri(response.Headers["Location"]);
                        uris.Add(graphUri);

                        Console.WriteLine("New Graph URI is " + graphUri.ToString());

                        Console.WriteLine("Now attempting to retrieve this Graph from the Store");
                        Graph h = new Graph();
                        connector.LoadGraph(h, graphUri);

                        Assert.AreEqual(g, h, "Graphs should have been equal");
                        Console.WriteLine("Graphs were equal as expected");
                    }
                    else
                    {
                        Assert.Fail("A 201 Created response should have been received but got a " + (int)response.StatusCode + " response");
                    }
                    response.Close();
                }
                Console.WriteLine();
            }

            Assert.IsTrue(uris.Distinct().Count() == 10, "Should have generated 10 distinct URIs");
        }
Ejemplo n.º 48
0
        static void DoProtocol(Dictionary<String, String> arguments)
        {
            String method;
            SparqlHttpProtocolConnector endpoint;
            bool verbose = arguments.ContainsKey("verbose") || arguments.ContainsKey("v");
            if (verbose) Options.HttpDebugging = true;
            Options.UriLoaderCaching = !arguments.ContainsKey("nocache");
            String dataFile;

            //First Argument must be HTTP Method
            if (arguments.ContainsKey("$1") && !arguments["$1"].Equals(String.Empty))
            {
                method = arguments["$1"].ToUpper();
            }
            else
            {
                Console.Error.WriteLine("soh: Error: First argument must be one of head, get, put or post - type soh --help for details");
                Environment.Exit(-1);
                return;
            }

            try
            {
                if (arguments.ContainsKey("$2") && !arguments["$2"].Equals(String.Empty))
                {
                    endpoint = new SparqlHttpProtocolConnector(new Uri(arguments["$2"]));
                }
                else
                {
                    Console.Error.WriteLine("soh: Error: Second argument is required and must be the Dataset URI");
                    Environment.Exit(-1);
                    return;
                }
            }
            catch (UriFormatException uriEx)
            {
                Console.Error.WriteLine("soh: Error: Malformed SPARQL Endpoint URI");
                Console.Error.WriteLine(uriEx.Message);
                Environment.Exit(-1);
                return;
            }
            if (verbose) Console.Error.WriteLine("soh: Connection to SPARQL Uniform HTTP Protocol endpoint created OK");

            Uri graphUri;
            try
            {
                if (arguments.ContainsKey("$3") && !arguments["$3"].Equals(String.Empty))
                {
                    if (arguments["$3"].Equals("default"))
                    {
                        graphUri = null;
                        if (verbose) Console.Error.WriteLine("soh: Graph URI for Protocol request is 'default' (indicates the default unnamed graph)");
                    }
                    else
                    {
                        graphUri = new Uri(arguments["$3"]);
                        if (verbose) Console.Error.WriteLine("soh: Graph URI for Protocol request is '" + graphUri.ToString() + "'");
                    }
                }
                else
                {
                    Console.Error.WriteLine("soh: Error: Third argument is required and must be the Graph URI or default to indicate the default unnamed Graph");
                    Environment.Exit(-1);
                    return;
                }
            }
            catch (UriFormatException uriEx)
            {
                Console.Error.WriteLine("soh: Error: Malformed Graph URI");
                Console.Error.WriteLine(uriEx.Message);
                Environment.Exit(-1);
                return;
            }

            try
            {
                switch (method)
                {
                    case "GET":
                        if (arguments.ContainsKey("$4"))
                        {
                            Console.Error.WriteLine("soh: Error: Optional file argument for protocol mode is not permitted with the get method");
                            Environment.Exit(-1);
                            return;
                        }

                        if (verbose) Console.Error.WriteLine("soh: Making a GET request to the Protocol endpoint");
                        Graph g = new Graph();
                        endpoint.LoadGraph(g, graphUri);
                        if (verbose) Console.Error.WriteLine("soh: Received a Graph with " + g.Triples.Count + " Triples");

                        //Use users choice of output format otherwise RDF/XML
                        MimeTypeDefinition definition = null;
                        if (arguments.ContainsKey("accept"))
                        {
                            definition = MimeTypesHelper.GetDefinitions(arguments["accept"]).FirstOrDefault(d => d.CanWriteRdf);
                        }

                        if (definition != null)
                        {
                            Console.OutputEncoding = definition.Encoding;
                            IRdfWriter writer = definition.GetRdfWriter();
                            writer.Save(g, new StreamWriter(Console.OpenStandardOutput(), definition.Encoding));
                        }
                        else
                        {
                            if (arguments.ContainsKey("accept") && verbose) Console.Error.WriteLine("soh: Warning: You wanted output in format '" + arguments["accept"] + "' but dotNetRDF does not support this format so RDF/XML will be returned instead");

                            RdfXmlWriter rdfXmlWriter = new RdfXmlWriter();
                            rdfXmlWriter.Save(g, new StreamWriter(Console.OpenStandardOutput(), Encoding.UTF8));
                        }

                        break;

                    case "HEAD":
                        if (arguments.ContainsKey("$4"))
                        {
                            Console.Error.WriteLine("soh: Error: Optional file argument for protocol mode is not permitted with the head method");
                            Environment.Exit(-1);
                            return;
                        }

                        if (verbose) Console.Error.WriteLine("soh: Making a HEAD request to the Protocol endpoint");

                        bool exists = endpoint.GraphExists(graphUri);
                        Console.WriteLine(exists.ToString().ToLower());
                        break;

                    case "PUT":
                        //Parse in the Graph to be PUT first
                        if (arguments.ContainsKey("$4") && !arguments["$4"].Equals(String.Empty))
                        {
                            dataFile = arguments["$4"];
                        }
                        else
                        {
                            Console.Error.WriteLine("soh: Error: The file argument for protocol mode is required when using the put method");
                            Environment.Exit(-1);
                            return;
                        }
                        Graph toPut = new Graph();
                        FileLoader.Load(toPut, dataFile);
                        toPut.BaseUri = graphUri;

                        if (verbose)
                        {
                            Console.Error.WriteLine("soh: Graph to be uploaded has " + toPut.Triples.Count + " Triples");
                            Console.Error.WriteLine("soh: Making a PUT request to the Protocol endpoint");
                        }

                        endpoint.SaveGraph(toPut);
                        Console.WriteLine("soh: Graph saved to Protocol endpoint OK");
                        break;

                    case "POST":
                        //Parse in the Graph to be PUT first
                        if (arguments.ContainsKey("$4") && !arguments["$4"].Equals(String.Empty))
                        {
                            dataFile = arguments["$4"];
                        }
                        else
                        {
                            Console.Error.WriteLine("soh: Error: The file argument for protocol mode is required when using the post method");
                            Environment.Exit(-1);
                            return;
                        }
                        Graph toPost = new Graph();
                        FileLoader.Load(toPost, dataFile);

                        if (verbose)
                        {
                            Console.Error.WriteLine("soh: Graph to be uploaded has " + toPost.Triples.Count + " Triples");
                            Console.Error.WriteLine("soh: Making a POST request to the Protocol endpoint");
                        }

                        endpoint.UpdateGraph(graphUri, toPost.Triples, null);
                        Console.WriteLine("soh: Graph updated to Protocol endpoint OK");
                        break;

                    case "DELETE":
                        if (arguments.ContainsKey("$4"))
                        {
                            Console.Error.WriteLine("soh: Error: Optional file argument for protocol mode is not permitted with the head method");
                            Environment.Exit(-1);
                            return;
                        }
                        endpoint.DeleteGraph(graphUri);
                        Console.WriteLine("soh: Graph deleted from Protocol endpoint OK");
                        break;

                    default:
                        Console.Error.WriteLine("soh: Error: " + method + " is not a HTTP Method supported by this tool");
                        Environment.Exit(-1);
                        return;
                }
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("soh: Error: Error processing HTTP Protocol request");
                Console.Error.WriteLine(ex.Message);
                while (ex.InnerException != null)
                {
                    Console.Error.WriteLine();
                    Console.Error.WriteLine(ex.InnerException.Message);
                    Console.Error.WriteLine(ex.InnerException.StackTrace);
                    ex = ex.InnerException;
                }
                Environment.Exit(-1);
                return;
            }
        }
Ejemplo n.º 49
0
        public override Stream GetFragment(string id, string mimeType)
        {
            try
            {
                var g = new Graph();

                // id is the url
                var odataQuery = id;
                var xmlReader = XmlReader.Create(odataQuery, new XmlReaderSettings() { CloseInput = true});
                var syndicationItem = SyndicationItem.Load(xmlReader);
                xmlReader.Close();

                if (syndicationItem != null)
                {
                    // add the title
                    g.Assert(g.CreateUriNode(new Uri(id)), g.CreateUriNode(new Uri(_rdfsNamespacePrefix + "label")), g.CreateLiteralNode(syndicationItem.Title.Text));

                    // process basic properties
                    var xmlContent = syndicationItem.Content as XmlSyndicationContent;
                    if (xmlContent != null)
                    {
                        var odataEntityXml = XDocument.Load(xmlContent.GetReaderAtContent());

                        // get properties
                        var odataProperties =
                            odataEntityXml.Descendants().Where(elem => elem.Name.Namespace.Equals(DataServicesNamespace));

                        foreach (var odataProperty in odataProperties)
                        {
                            var propertyName = odataProperty.Name.LocalName;
                            var propertyValue = odataProperty.Value;

                            // remove later
                            propertyValue = propertyValue.Replace("&oslash;", "ø");
                            propertyValue = propertyValue.Replace("&aring;", "å");
                            propertyValue = propertyValue.Replace("&", "");

                            if (string.IsNullOrEmpty(propertyValue)) continue;

                            // see if there is a data type
                            if (odataProperty.Attribute(MetadataNamespace + "type") != null)
                            {
                                g.Assert(g.CreateUriNode(new Uri(id)),
                                         g.CreateUriNode(new Uri(_defaultSchemaNamespacePrefix + propertyName)),
                                         g.CreateLiteralNode(propertyValue, ConvertEdmToXmlSchemaDataType(odataProperty.Attribute(MetadataNamespace + "type").Value)));
                            } else
                            {
                                g.Assert(g.CreateUriNode(new Uri(id)), g.CreateUriNode(new Uri(_defaultSchemaNamespacePrefix + propertyName)), g.CreateLiteralNode(propertyValue));
                            }
                        }
                    }
                }

                // add a instance-of relationship in to the graph for the entity
                foreach (var category in syndicationItem.Categories)
                {
                    var term = _defaultSchemaNamespacePrefix + category.Name.Replace('.', '/');
                    g.Assert(g.CreateUriNode(new Uri(id)),
                                                g.CreateUriNode(new Uri(_rdfNamespacePrefix + "type")),
                                                g.CreateUriNode(new Uri(term)));
                }

                // process relationships
                var links = syndicationItem.Links.Where(l => l.RelationshipType.StartsWith(OdataRelationshipRelTypePrefix));
                foreach (var syndicationLink in links)
                {
                    // property name
                    var propertyName = syndicationLink.RelationshipType.Substring(OdataRelationshipRelTypePrefix.Length);

                    // go fetch the related entities
                    // todo: we might look to use expand here but as there is no wildcard its a bit of a pain right now unless we pull the schema.

                    // need to check if we need to load an entry or a feed
                    IEnumerable<SyndicationItem> items = null;
                    try
                    {
                        if (syndicationLink.MediaType.ToLower().Contains("type=entry"))
                        {
                            xmlReader = XmlReader.Create(id + "/" + propertyName, new XmlReaderSettings() { CloseInput = true});
                            items = new List<SyndicationItem>()
                                        {SyndicationItem.Load(xmlReader)};
                            xmlReader.Close();
                        }
                        else
                        {
                            xmlReader = XmlReader.Create(id + "/" + propertyName, new XmlReaderSettings() { CloseInput = true});
                            items = SyndicationFeed.Load(xmlReader).Items;
                            xmlReader.Close();
                        }
                    } catch (Exception)
                    {
                        // log and carry on
                        xmlReader.Close();
                    }

                    if (items != null)
                    {
                        foreach (var item in items)
                        {
                            // predicate value
                            g.Assert(g.CreateUriNode(new Uri(id)),
                                     g.CreateUriNode(new Uri(_defaultSchemaNamespacePrefix + propertyName)),
                                     g.CreateUriNode(new Uri(item.Id)));
                        }
                    }
                }

                // return data
                var rdfxmlwriter = new RdfXmlWriter();
                var strw = new System.IO.StringWriter();
                rdfxmlwriter.Save(g, strw);
                var data = strw.ToString();
                data = data.Replace("utf-16", "utf-8");

                var ms = new MemoryStream();
                var sw = new StreamWriter(ms, Encoding.UTF8);
                sw.Write(data);
                sw.Flush();
                ms.Seek(0, SeekOrigin.Begin);
                return ms;

            } catch(Exception ex)
            {
                Logging.LogError(1, "Unable to fetch fragment for {0}. {1} {2}", id, ex.Message, ex.StackTrace);
            }
            return null;
        }
        /// <summary>
        /// Updates a Graph on the Protocol Server
        /// </summary>
        /// <param name="graphUri">URI of the Graph to update</param>
        /// <param name="additions">Triples to be added</param>
        /// <param name="removals">Triples to be removed</param>
        /// <remarks>
        /// <strong>Note:</strong> The SPARQL Graph Store HTTP Protocol for Graph Management only supports the addition of Triples to a Graph and does not support removal of Triples from a Graph.  If you attempt to remove Triples then an <see cref="RdfStorageException">RdfStorageException</see> will be thrown
        /// </remarks>
        public virtual void UpdateGraph(string graphUri, IEnumerable<Triple> additions, IEnumerable<Triple> removals)
        {
            if (removals != null && removals.Any()) throw new RdfStorageException("Unable to Update a Graph since this update requests that Triples be removed from the Graph which the SPARQL Graph Store HTTP Protocol for Graph Management does not support");

            if (additions == null || !additions.Any()) return;

            String updateUri = this._serviceUri;
            if (graphUri != null && !graphUri.Equals(String.Empty))
            {
                updateUri += "?graph=" + Uri.EscapeDataString(graphUri);
            }
            else
            {
                updateUri += "?default";
            }

            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(updateUri));
                request.Method = "POST";
                request.ContentType = MimeTypesHelper.RdfXml[0];
                RdfXmlWriter writer = new RdfXmlWriter();
                Graph g = new Graph();
                g.Assert(additions);
                writer.Save(g, new StreamWriter(request.GetRequestStream()));

#if DEBUG
                if (Options.HttpDebugging)
                {
                    Tools.HttpDebugRequest(request);
                }
#endif

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
#if DEBUG
                    if (Options.HttpDebugging)
                    {
                        Tools.HttpDebugResponse(response);
                    }
#endif
                    //If we get here then it was OK
                    response.Close();
                }
            }
            catch (WebException webEx)
            {
#if DEBUG
                if (Options.HttpDebugging)
                {
                    if (webEx.Response != null) Tools.HttpDebugResponse((HttpWebResponse)webEx.Response);
                }
#endif
                throw new RdfStorageException("A HTTP Error occurred while trying to update a Graph in the Store", webEx);
            }
        }
Ejemplo n.º 51
0
        public void Write(System.Xml.XmlWriter writer)
        {
            RdfXmlWriter rdfxmlwriter = new RdfXmlWriter(0,false);
            System.IO.StringWriter tw = new System.IO.StringWriter();
            System.Xml.XmlReader nr;

            rdfxmlwriter.Save(this,tw);
            string str = tw.ToString().Remove(0, @"<?xml version=""1.0"" encoding=""utf-16"">".Length+3);
            nr = System.Xml.XmlNodeReader.Create(new System.IO.MemoryStream(System.Text.Encoding.Unicode.GetBytes(str)));
            writer.WriteNode(nr, true);
        }
        /// <summary>
        /// Internal implementation of adding a Graphs content to the Store
        /// </summary>
        /// <param name="g">Graph to add to the Store</param>
        /// <param name="servicePath">Service at the Store to add to</param>
        private void AddInternal(IGraph g, String servicePath)
        {
            HttpWebRequest request = null;
            HttpWebResponse response = null;

            try
            {
                //Create the Request
                request = this.CreateRequest(servicePath, new Dictionary<string, string>());
                request.Method = "POST";
                request.ContentType = MimeTypesHelper.RdfXml[0];

                //Write the RDF/XML to the Request Stream
                RdfXmlWriter writer = new RdfXmlWriter();
                writer.Save(g, new StreamWriter(request.GetRequestStream()));

#if DEBUG
                if (Options.HttpDebugging)
                {
                    Tools.HttpDebugRequest(request);
                }
#endif
                
                //Make the Request
                using (response = (HttpWebResponse)request.GetResponse())
                {
#if DEBUG
                    if (Options.HttpDebugging)
                    {
                        Tools.HttpDebugResponse(response);
                    }
#endif
                    //OK if we get here!
                    response.Close();
                }
            }
            catch (WebException webEx)
            {
                if (webEx.Response != null)
                {
                    //Got a Response so we can analyse the Response Code
                    response = (HttpWebResponse)webEx.Response;
                    int code = (int)response.StatusCode;
                    throw Error(code, webEx);
                }
                //Didn't get a Response
                throw;
            }
        }
Ejemplo n.º 53
0
 protected void createPublic()
 {
     Graph g = new Graph();
     Session["ugraph"] = g;
     RdfXmlWriter rdfxmlwriter = new RdfXmlWriter();
     rdfxmlwriter.Save(g, path_public);
 }