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


Reply via email to