SPARQL SELECT TSV response not compliant

I am trying to run a federated query from an instance of another query engine (more specifically, QLever OSM) to an instance of Virtuoso version 08.03.3330 (dc3dc905a4) (more specifically, dati.isprambiente.it) but I’m receiving this error:

Header row of TSV result for SERVICE query is ““ispra” “cod_istat””, but expected “?ispra ?cod_istat”

So I did some tests calling directly the Virtuoso endpoint in the way I expect other endpoints to call it for federated queries, asking for the TSV response:

curl -X POST https://dati.isprambiente.it/sparql -H "Accept: text/tab-separated-values" -H "Content-type: application/sparql-query" --data "SELECT * WHERE { ?a ?b ?c. } LIMIT 10" --verbose

These were the first rows of the response:

"a"	"b"	"c"
"http://www.openlinksw.com/schemas/virtrdf#DefaultQuadMap"	"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"	"http://www.openlinksw.com/schemas/virtrdf#QuadMap"
"http://www.openlinksw.com/schemas/virtrdf#TmpQuadMap"	"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"	"http://www.openlinksw.com/schemas/virtrdf#QuadMap"

This is valid TSV but is not compliant with the SPARQL specification for the TSV response to SPARQL queries, which would require a result like this:

?a	?b	?c
<http://www.openlinksw.com/schemas/virtrdf#DefaultQuadMap>	<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>	<http://www.openlinksw.com/schemas/virtrdf#QuadMap>
<http://www.openlinksw.com/schemas/virtrdf#TmpQuadMap>	<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>	<http://www.openlinksw.com/schemas/virtrdf#QuadMap>

This explains the error above.

Is this a bug in Virtuoso or a misconfiguration of that particular instance? In the second case, what should I suggest the instance managers to do in order to fix this mis-compliance?

We are looking into this …

1 Like