Hi Hugh Any further news/progress on this?
I would really like to get my next release made this week and would very much prefer not to have to ship it with some variation of "Virtuoso support is broken" as a Known Issue. But I have a lot of bug fixes for my own code's issues in the new release which I would really like to get out to my users. I can't keep pushing back my release indefinitely and would ideally like to release by the end of the week. Thanks, Rob ---------------------------------------- From: "Hugh Williams" <[email protected]> Sent: 21 February 2011 11:59 To: [email protected] Subject: Re: [Virtuoso-users] Missing datatypes using ADO.NET Hi Rob, We are looking into this and will report back with our findings / fix ... Best RegardsHugh WilliamsProfessional ServicesOpenLink SoftwareWeb: http://www.openlinksw.comSupport: http://support.openlinksw.comForums: http://boards.openlinksw.com/supportTwitter: http://twitter.com/OpenLink On 21 Feb 2011, at 09:00, Rob Vesse wrote:Hi Hugh et al Building the latest ADO.Net provider from the snapshot source does appear to fix the datatypes issue for me but I then encounter another issue. I'm not sure if this is just due to me only building the ADO.Net provider on it's own and not building the entirety of Virtuoso - any chance you can link a binary build of the provider so I can check this? Here is the new issue anyway - essentially parameterized commands appear to now be broken. I get the following error: Other Error Virtuoso Error: SQL_ERROR SQLSTATE: 37000 Message: [Virtuoso .NET Data Provider][Virtuoso Server]SQ074: Line 1: syntax error at '@' before 'data' at OpenLink.Data.Virtuoso.Diagnostics.HandleErrors(ReturnCode returnCode, ICreateErrors source) in E:\dotNetRdf\Trunk\Libraries\VirtuosoClient.Net\Diagnostics.cs:line 60 at OpenLink.Data.Virtuoso.Diagnostics.HandleResult(ReturnCode returnCode, ICreateErrors source, IDbConnection connection) in E:\dotNetRdf\Trunk\Libraries\VirtuosoClient.Net\Diagnostics.cs:line 50 at OpenLink.Data.Virtuoso.ManagedCommand.Execute(String query) in E:\dotNetRdf\Trunk\Libraries\VirtuosoClient.Net\ManagedCommand.cs:line 220 at OpenLink.Data.Virtuoso.VirtuosoCommand.ExecuteReader(CommandBehavior behavior) in E:\dotNetRdf\Trunk\Libraries\VirtuosoClient.Net\VirtuosoCommand.cs:line 476 at OpenLink.Data.Virtuoso.VirtuosoCommand.ExecuteNonQuery() in E:\dotNetRdf\Trunk\Libraries\VirtuosoClient.Net\VirtuosoCommand.cs:line 395 at VDS.RDF.Storage.VirtuosoManager.SaveGraph(IGraph g) in E:\dotNetRdf\Trunk\Libraries\core\Storage\VirtuosoManager.cs:line 418 at VDS.RDF.Test.Storage.VirtuosoTest.VirtuosoSaveGraph() in E:\dotNetRdf\Trunk\Testing\unittest\Storage\VirtuosoTest.cs:line 122 In this errors case the code I use to invoke the command is as follows (this has worked fine with all previous versions of the provider that I have used): //Make a call to the TTLP() Virtuoso function VirtuosoCommand cmd = new VirtuosoCommand(); cmd.CommandText = "DB.DBA.TTLP(@data, @base, @graph, 1)"; cmd.Parameters.Add("data", VirtDbType.VarChar); cmd.Parameters["data"].Value = VDS.RDF.Writing.StringWriter.Write(g, new NTriplesWriter()); String baseUri = g.BaseUri.ToSafeString(); cmd.Parameters.Add("base", VirtDbType.VarChar); cmd.Parameters.Add("graph", VirtDbType.VarChar); cmd.Parameters["base"].Value = baseUri; cmd.Parameters["graph"].Value = baseUri; cmd.Connection = this._db; int result = cmd.ExecuteNonQuery(); Can you guys either look into this or give me a binary build that I can test myself? If you want to use this as a test case just replace VDS.RDF.Writing.StringWriter.Writer(g, new NTriplesWriter()) with an arbitrary NTriples/Turtle string and g.BaseUri.ToSafeString() with an arbitrary test URI string. And this._db is obviously a reference to a VirtuosoConnection object. Thanks again for fixing this, Rob Vesse ---------------------------------------- From: "Hugh Williams" <[email protected]> Sent: 20 February 2011 23:16 To: "Rob Vesse" <[email protected]>, "Anton Andreev" <[email protected]>, "Moritz Eberl" <[email protected]> Subject: Re: [Virtuoso-users] Missing datatypes using ADO.NET Hi All, A new Virtuoso 6.1.3 RC open source snapshot containing fixes for the missing datatypes in the ADO.Net Provider can be downloaded from: ftp://download.openlinksw.com/support/vos/virtuoso-opensource-6-20110218.ta r.gz Please download build and test to confirm these issues have been resolved. Best RegardsHugh WilliamsProfessional ServicesOpenLink SoftwareWeb: http://www.openlinksw.comSupport: http://support.openlinksw.comForums: http://boards.openlinksw.com/supportTwitter: http://twitter.com/OpenLink On 4 Feb 2011, at 11:49, Rob Vesse wrote:Hi Hugh Any news on this yet? Thanks, Rob ---------------------------------------- From: "Hugh Williams" <[email protected]> Sent: 26 January 2011 17:45 To: [email protected] Subject: Re: [Virtuoso-users] Missing datatypes using ADO..NET Hi Rob, OK, we are currently looking into these reported issues and shall report back with our findings ... Best RegardsHugh WilliamsProfessional ServicesOpenLink SoftwareWeb: http://www.openlinksw.comSupport: http://support.openlinksw.comForums: http://boards.openlinksw.com/supportTwitter: http://twitter.com/OpenLink On 26 Jan 2011, at 14:04, Rob Vesse wrote:Hi Hugh I can confirm that the same issue still happens in my code as well (thought it was fixed ages ago :-( ). The sample application is no use as a reference since it only messes about with SqlExtendedStrings for IRIs and does nothing with non-IRI types other than call ToString() on them (either explicitly or implicitly when displaying them). The problem seems to be that things are being returned as Strings rather than as appropriate .Net types. The only RDF datatypes I can get back properly are those with custom datatypes - standard types like Integers, Booleans, Date Times etc all come back as plain strings instead of as SqlRdfBox or an appropriate .Net type. Literals with language tags do get returned correctly though. I remember bringing up this issue back in April 2010 and I had thought it was fixed but it appears not. This issue is a major pain for people using Virtuoso's ADO.Net support whether directly or indirectly via a library like mine so please can your developers look into this again asap. Cheers, Rob P.S. If you finally fix the booleans to integers thing I will be eternally grateful especially if you fix the above as well ---------------------------------------- From: "Hugh Williams" <[email protected]> Sent: 26 January 2011 13:45 To: "Moritz Eberl" <[email protected]> Subject: Re: [Virtuoso-users] Missing datatypes using ADO.NET Hi Moritz, As a starting point are you able to get the sample walkthrough SPASQL application we have at: http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPASQLWinFormApp working ? The booleans being mapped to integers is a known issue that is scheduled to be fixed in a future/next release ... Best RegardsHugh WilliamsProfessional ServicesOpenLink SoftwareWeb: http://www.openlinksw.comSupport: http://support.openlinksw.comForums: http://boards.openlinksw.com/supportTwitter: http://twitter.com/OpenLink On 26 Jan 2011, at 13:12, Moritz Eberl wrote: Hello Rob, currently i do not use any API. I first wanted to be able to get the RDF data with basic SPARQL queries. While trying to figure out what i was doing wrong, i also used your API. The results where pretty much the same. All typed literals were returned as strings. You are right about the boolean datatype in Virtuoso. I just tried to store a xsd:boolean, which resulted in a xsd:integer using the RDF/XML representation. Cheers, Moritz Am 26.01.2011 13:03, schrieb Rob Vesse: Hi Moritz What API are you using to manipulate the RDF within your application or have you rolled your own? My API dotNetRDF (http://www.dotnetrdf.org) has Virtuoso integration built in and might be helpful to you as it handles all the data type retrieval appropriately. I've had isolated reports that on some machines things don't come back correctly and I know that it was an issue with older 6.x releases of Virtuoso (though should be fine in the version you're using). One think to note about datatypes is that in my experience Virtuoso doesn't return all datatypes correctly even when you do a SPASQL select like you've done and do all the type handling. If my memory serves me this particularly applies to xsd:boolean typed literals which come back as a 1/0 rather than a true/false though if you do a CONSTRUCT over the same data the type does come back correctly. Regards, Rob Vesse ---------------------------------------- From: "Moritz Eberl" <[email protected]> Sent: 26 January 2011 11:51 To: [email protected] Subject: [Virtuoso-users] Missing datatypes using ADO.NET Hello, i am trying to use Virtuoso as RDF store for a C# application with .Net 4, but i have some issues with the ADO.NET library. I have no troubles creating triples with SPARQL using SPASQL, but the retrieval is problematic. In the result set, all typed literals are strings without type information. I get the IRI as SqlExtendedString and the literals with language information as SqlRdfBox, so no problem there. Now i am wondering what i'm doing wrong. This is how i access the data: DataTable results = new DataTable(); results.Columns.Add("s", typeof(System.Object)); results.Columns.Add("p",typeof(System.Object)); results.Columns.Add("o", typeof(System.Object)); VirtuosoCommand cmd = Connection.CreateCommand(); cmd.CommandText = "SPARQL select * where {?s ?p ?o.}"; //just an example here VirtuosoDataAdapter adapter = new VirtuosoDataAdapter(cmd); adapter.Fill(results); I also tried to use the RDF/XML output, although not optimal performance-wise, it kind of worked. One thing i noticed though, was that ASK statments produce malformed XML. As example, this statment SPARQL define output:format "RDF/XML" ask where {?s ?p ?o.}; produced xmlns:rs="http://www.w3.org/2005/sparql-results#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" > rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">1 The prefix of the closing result tag is missing. You can try it in the Interactive SQL form of the conductor. My system specs: OS: Windows 7 64-bit Virtuoso: Open-Source-Edition Version 06.01.3127 - Build Jul 9 2010 32-bit virtado3.dll: Version 6.2.3128.1 It would be great if somebody could help me to resolve my issues. Cheers, Moritz ---------------------------------------------------------------------------- -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ Virtuoso-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/virtuoso-users ---------------------------------------------------------------------------- -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d__________________________________________ _____ Virtuoso-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/virtuoso-users ---------------------------------------------------------------------------- -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d__________________________________________ _____ Virtuoso-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/virtuoso-users ---------------------------------------------------------------------------- -- The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb________________________________________ _______ Virtuoso-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/virtuoso-users
