A set of SPARQL examples that are used in different TGX resources
License: https://www.gnu.org/licenses/gpl-3.0
Uses method in: https://github.com/WDscholia/scholia/tree/master/scholia/app/templates/wikiproject_publications-per-year.sparql
Wikiproject aspect: publications per year
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://wikidata.org/entity/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
#defaultView:BarChart
PREFIX target: <http://www.wikidata.org/entity/Q60687720>
SELECT
(STR(?year_) AS ?year)
(COUNT(?work) AS ?number_of_publications)
# Work type used to color the bar chart
?type
WITH {
# Find works with the topic. Also report the year
SELECT
?work (MIN(?years) AS ?year_) (1 AS ?dummy) (SAMPLE(?article_type_) AS ?article_type)
WHERE {
{ ?work wdt:P6104 target: .}
union
{ ?work wdt:P5008 target: .}
?work wdt:P577 ?dates .
BIND(YEAR(?dates) AS ?years) .
?work wdt:P31 ?article_type_ .
}
GROUP BY ?work
} AS %works
WITH {
SELECT ?year_ WHERE {
# default values = 0
?year_item wdt:P31 wd:Q577 .
?year_item wdt:P585 ?date .
BIND(YEAR(?date) AS ?year_)
}
} AS %default_counts
WITH {
# Find earliest publication year
SELECT (MIN(?year_) AS ?earliest_year) WHERE {
INCLUDE %works
}
GROUP BY ?dummy
} AS %earliest
WHERE {
{
INCLUDE %works
?article_type rdfs:label ?type . FILTER (LANG(?type) = "en")
}
UNION
{
INCLUDE %default_counts
BIND("_" AS ?type)
}
INCLUDE %earliest
BIND(YEAR(NOW()) AS ?this_year)
FILTER (?year_ >= ?earliest_year && ?year_ <= ?this_year && ?year_ >= YEAR("1900-01-01"^^xsd:dateTime))
}
GROUP BY ?year_ ?type
ORDER BY ?year
graph TD