Thank you for that,

Nikos.

On Thu, Sep 8, 2016 at 4:42 PM, Rob Vesse <[email protected]> wrote:

> The CSV format is explicitly defined to be a lossy format so some
> information can and will be lost when serialising to CSV. Specifically the
> datatypes and language tags for literals and literals/URIs may not be
> distinguishable due to their encoding.
>
> From the spec (http://www.w3.org/TR/2013/REC-sparql11-results-csv-tsv-
> 20130321/#intro):
>
> The SPARQL Results CSV Results Format is a lossy encoding of a table of
> results. It does not encode all the details of each RDF term in the results
> but instead just gives a string without indicating the type of the term
> (IRI, Literal, Literal with datatype, Literal with language, or blank
> node). This makes it simple to consume data, such as text and numbers, in
> applications without needing to understand the details of RDF. In some
> applications, guesses as to which elements are hyperlinks are made
> pragmatically, for example, guessing that strings starting "http://"; are
> links.
>
> Rob
>
> On 08/09/2016 14:04, "Nikolaos Beredimas" <[email protected]> wrote:
>
>     I have a method that does a SPARQL select query and returns results in
> XML,
>     JSON and CSV using
>     outputAsCSV
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSetFormatter.html#outputAsCSV-java.io.
> OutputStream-org.apache.jena.query.ResultSet->
>     (OutputStream
>     <http://docs.oracle.com/javase/7/docs/api/java/io/
> OutputStream.html?is-external=true>
>      outStream, ResultSet
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSet.html>
>      resultSet)
>     outputAsJSON
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSetFormatter.html#outputAsJSON-java.io.
> OutputStream-org.apache.jena.query.ResultSet->
>     (OutputStream
>     <http://docs.oracle.com/javase/7/docs/api/java/io/
> OutputStream.html?is-external=true>
>      outStream, ResultSet
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSet.html>
>      resultSet)
>     outputAsXML
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSetFormatter.html#outputAsXML-java.io.
> OutputStream-org.apache.jena.query.ResultSet->
>     (OutputStream
>     <http://docs.oracle.com/javase/7/docs/api/java/io/
> OutputStream.html?is-external=true>
>      outStream, ResultSet
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSet.html>
>      qresults)
>
>     When trying to unit test it I have a problem with the CSV case.
>     I have tried
>     ResultSetCompare
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/sparql/resultset/ResultSetCompare.html#ResultSetCompare-->
>     .equalsByTerm
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/sparql/resultset/ResultSetCompare.html#
> equalsByTerm-org.apache.jena.query.ResultSet-org.apache.
> jena.query.ResultSet->
>     (ResultSet
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSet.html>
>      rs1, ResultSet
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSet.html>
>      rs2)
>     ResultSetCompare
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/sparql/resultset/ResultSetCompare.html#ResultSetCompare-->
>     .equalsByValue
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/sparql/resultset/ResultSetCompare.html#
> equalsByValue-org.apache.jena.query.ResultSet-org.apache.
> jena.query.ResultSet->
>     (ResultSet
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSet.html>
>      rs1, ResultSet
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSet.html>
>      rs2)
>     ResultSetCompare
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/sparql/resultset/ResultSetCompare.html#ResultSetCompare-->
>     .isomorphic
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/sparql/resultset/ResultSetCompare.html#
> isomorphic-org.apache.jena.query.ResultSet-org.apache.
> jena.query.ResultSet->
>     (ResultSet
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSet.html>
>      rs1, ResultSet
>     <https://jena.apache.org/documentation/javadoc/arq/org/
> apache/jena/query/ResultSet.html>
>      rs2)
>     and they all fail to return true.
>
>     Compared ResultSet objects are converted to ResultSetRewindable before
>     comparing.
>     JSON and XML cases work as expected (return true), but CSV fails.
>
>     I am testing a very simple case with a ResultSet of just 4 rows.
>     Using Jena 2.11.0
>
>     Any thoughts?
>
>     Nikos.
>
>
>
>
>
>
>

Reply via email to