Given a SPARQL endpoint (which can be either SPARQL 1.0 or 1.1), say for example http://pt.dbpedia.org/sparql, how do I find which version of SPARQL it supports?
[One option is to try out a 1.1 feature such as aggregate functions and see it works but I guess there should be a better way to do this].
The SPARQL 1.1 Service Description specification says
SPARQL services made available via the SPARQL Protocol should return a service description document at the service endpoint when dereferenced using the HTTP GET operation without any query parameter strings provided. This service description must be made available in an RDF serialization, may be embedded in (X)HTML by way of RDFa [RDFA], and should use content negotiation [CONNEG] if available in other RDF representations
and further,
3.2.10 sd:supportedLanguage Relates an instance of sd:Service to a SPARQL language (e.g. Query and Update) that it implements. subPropertyOf: sd:feature domain: sd:Service range: sd:Language
3.3.3 sd:Language An instance of sd:Language represents one of the SPARQL languages, including specific configurations providing particular features or extensions. This document defines three instances of sd:Language: sd:SPARQL10Query, sd:SPARQL11Query, and sd:SPARQL11Update. type: rdfs:Class subClassOf: sd:Feature
But when I dereference most of the SPARQL endpoints, they just sends me an HTML SPARQL query editor.
UPDATE: HTML editor issue was because I didn't use proper content negotiation on the endpoint. But now the question is there a good way to differentiate between a SPARQL 1.0 endpoint and a SPARQL 1.1 endpoint that doesn't provide a service description?
There are some work done on discovering and monitoring SPARQL endpoints such as SPARQL Web-Querying Infrastructure: Ready for Action?, Discoverability of SPARQL Endpoints in Linked Open Data but I didn't see a straight-forward way of finding the version.