There are seems to be also some tools to visualize data by accessing to a SPARQL endpoint (e.g. Apache Jena Fuseki provides the possibility to have a SPARQL endpoint, in addition to publicly available SPARQL endpoints, if that's of an interest). This might be a bit off-topic, but I hope at least related to your challenge :)
Apparently sparql doesn't allow non aggregate variables in the select clause unless they are also in the group by, which affects the query's meaning. So I came up with another solution which includes an intersection(join):
select ?country ?area ?lake
where {
?lake rdfs:label ?label .
?lake rdf:type dbo:Lake .
?lake dbo:areaTotal ?area .
?lake dbo:country ?country .
?country rdf:type dbo:Country .
FILTER (lang(?label) = 'en') .
FILTER(?maxarea = ?area)
{
select ?country (MAX(?area) AS ?maxarea)
where {
?lake rdfs:label ?label .
?lake rdf:type dbo:Lake .
?lake dbo:areaTotal ?area .
?lake dbo:country ?country .
?country rdf:type dbo:Country .
FILTER (lang(?label) = 'en') .
}
group by ?country
}
}
An RDF query language is a computer language, specifically a query language for databases, able to retrieve and manipulate data stored in Resource Description Framework format.
SPARQL is emerging as the factor of RDF query language, and is a W3C recommendation.but there is other query languages like:
DQL, XML-based
N3QL
R-DEVICE
RDFQ, XML-based
RDQ, SQL-like
RDQL, SQL-like
RQL/RVL, SQL-like
SeRQL, SQL-like,
Example:Cities in Austria the name of which starts with the string "Ober"
SELECT ?L
WHERE
{
?C rdfs:label ?L ;
http://dbpedia.org/ontology/country
http://dbpedia.org/resource/Austria .
FILTER ( regex(str(?L),"^Ober"))
}