sub:assertion {
sub:get-type-overview-last-12-months dct:description "This query returns an monthly overview of published nanopublications by types for the past 12 months for the given creator." ;
dct:license <
http://www.apache.org/licenses/LICENSE-2.0> ;
a <
https://w3id.org/kpxl/grlc/grlc-query> ;
rdfs:label "Get type overview of nanopubs last 12 months" ;
<
https://w3id.org/kpxl/grlc/endpoint> <
https://w3id.org/np/l/nanopub-query-1.1/repo/meta> ;
<
https://w3id.org/kpxl/grlc/sparql> """prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
select ?type ?month ?npCount ?npCountType where {
{ select ?type ?month (count(?np) as ?npCount) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np dct:creator ?_creator_iri .
?np npx:hasNanopubType ?type .
bind(substr(str(?date), 0, 8) as ?month)
bind(now() as ?now)
bind(concat(str(year(?now)), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?lastMonth)
bind(concat(str(year(?now)-1), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?firstMonth)
filter(?month > ?firstMonth && ?month <= ?lastMonth)
}
}
group by ?type ?month
order by ?type desc(?month)
}
{ select ?type (count(?np) as ?npCountType) where {
graph npa:graph {
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np dct:created ?date .
?np dct:creator ?_creator_iri .
?np npx:hasNanopubType ?type .
bind(substr(str(?date), 0, 8) as ?month)
bind(now() as ?now)
bind(concat(str(year(?now)), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?lastMonth)
bind(concat(str(year(?now)-1), '-', if(month(?now)>9,'','0'), str(month(?now))) as ?firstMonth)
filter(?month > ?firstMonth && ?month <= ?lastMonth)
}
}
group by ?type
order by desc(?npCountType)
limit 10
}
}
order by desc(?npCountType) ?type desc(?month)""" .
}