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, 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 -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"
""	""	""
""	""	""

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
<>	<>	<>
<>	<>	<>

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