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