. . . . "Returns all recent, ongoing, and upcoming events that are defined as Spaces." . . . "Get recent and upcoming events" . . "prefix rdfs: \nprefix dct: \nprefix np: \nprefix npa: \nprefix npx: \nprefix gen: \nprefix schema: \nprefix xsd: \n\nselect ?event ?event_label ?status ?date ?np (\"^\" as ?np_label) where {\n graph npa:graph {\n ?np npa:hasValidSignatureForPublicKeyHash ?pubkey .\n filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }\n filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }\n ?np npx:introduces ?event .\n ?np np:hasAssertion ?a .\n ?np dct:created ?npDate .\n filter not exists {\n ?np2 npx:introduces ?event .\n ?np2 npa:hasValidSignatureForPublicKeyHash ?pubkey2 .\n filter not exists { ?npx2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pubkey2 . }\n ?np2 dct:created ?npDate2 .\n filter(?npDate2 > ?npDate)\n }\n }\n graph ?a {\n ?event a gen:Space .\n ?event a gen:Event .\n ?event rdfs:label ?event_label .\n ?event schema:startDate ?datetime .\n optional { ?event schema:endDate ?endDatetime . }\n\n }\n bind(xsd:date(substr(str(?datetime), 0, 11)) as ?date)\n bind(xsd:date(substr(str(now()), 0, 11)) as ?today)\n optional { bind(xsd:date(substr(str(?endDatetime), 0, 11)) as ?endDate) }\n bind(if(bound(?endDate), ?endDate, ?date) as ?effectiveEnd)\n filter(?date >= ?today || ?effectiveEnd >= ?today - \"P7D\"^^xsd:duration)\n bind(if(?effectiveEnd < ?today, 1, if(?date > ?today, 3, 2)) as ?statusOrder)\n bind(if(?date > ?today, \"upcoming\", if(?effectiveEnd >= ?today, \"ongoing\", \"recently concluded\")) as ?status)\n} order by ?statusOrder ?date" . . "Tobias Kuhn" . "2026-03-20T19:35:34Z"^^ . . . . . . . . . "RSA" . "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB" . "hxQqltTsQuzs3n+4vaF3/hQ15/6vMXACzwSvseiR0raXIJpXoq7QUDFG6d4RyVrRf2q3Kow6Du0uZZ1IPICveHcJlSlrLHMwo5G27Pd+68Dt40DM5ZzA81ge1QDhmUn4q5/vW2MuNXrNqzvc8LJVhkwtwGTtvq0iSvFIPLMLjSg=" . . .