. . . . "Returns one row with an SVG column: a strip of key figures for the FAIR Implementation Space, showing the total number of FAIR Supporting Resources (FSRs, including FAIR-Enabling Resources), FAIR Implementation Profiles (FIPs), Reference FIPs (rFIPs), FAIR Implementation Communities (FICs) and curated FSRs. Each figure repeats the gates of the view that lists the same entities further down the page - FSRs and FIPs are counted as distinct resources, reference FIPs as the latest one per community, communities as the latest labelled declaration each, and curated FSRs as resources qualified by the GO FAIR Foundation with a key on the curators list whose qualified declaration is still the current one - so a figure cannot disagree with the list it links to. Each number is a link to the corresponding section of the space page. This is the query behind the \"In numbers\" SVG view." . . . "Get key figures as SVG" . . "prefix rdfs: \nprefix np: \nprefix npa: \nprefix npx: \nprefix dct: \nprefix fip: \n\nselect ?svg where {\n # Each figure repeats the gates of the view that lists the same entities on this\n # page, so a number can never disagree with the list it links to.\n # Total FAIR Supporting Resources (distinct resources, incl. FAIR-Enabling Resources).\n { select (count(distinct ?fsr) as ?n_fsr) where {\n graph npa:graph {\n ?fsrnp npx:introduces|npx:describes ?fsr ; npx:hasNanopubType ?fsrt ; npa:hasValidSignatureForPublicKey ?fsrpk ; dct:created ?fsrdate .\n values ?fsrt { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource }\n filter(str(?fsrdate) > \"2022\")\n filter not exists { ?fsrnp npx:hasNanopubType npx:ExampleNanopub . }\n filter not exists { ?fsrx npx:invalidates ?fsrnp ; npa:hasValidSignatureForPublicKey ?fsrpk . }\n }\n } }\n # FIPs, excluding reference FIPs.\n { select (count(distinct ?fip) as ?n_fip) where {\n graph npa:graph {\n ?fipnp npx:hasNanopubType fip:FAIR-Implementation-Profile ; npx:introduces ?fip ; npa:hasValidSignatureForPublicKey ?fippk ; np:hasAssertion ?fipa .\n filter not exists { ?fipnp npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile . }\n filter not exists { ?fipnp npx:hasNanopubType npx:ExampleNanopub . }\n filter not exists { ?fipx npx:invalidates ?fipnp ; npa:hasValidSignatureForPublicKey ?fippk . }\n }\n graph ?fipa { ?fip a fip:FAIR-Implementation-Profile ; rdfs:label ?fiplabel ; fip:declared-by ?fipcomm . }\n } }\n # Reference FIPs: the latest one per community.\n { select (count(*) as ?n_rfip) where {\n { select ?rcommunity (max(?rdate) as ?rlatest) where {\n graph npa:graph {\n ?rcnp npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile ; npa:hasValidSignatureForPublicKeyHash ?rcpk ;\n dct:created ?rdate ; np:hasAssertion ?rca ; npx:introduces ?rcrfip .\n filter not exists { ?rcnpx npx:invalidates ?rcnp ; npa:hasValidSignatureForPublicKeyHash ?rcpk . }\n }\n graph ?rca { ?rcrfip fip:declared-by ?rcommunity . }\n } group by ?rcommunity }\n graph npa:graph {\n ?rnp npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile ; npa:hasValidSignatureForPublicKeyHash ?rpk ;\n dct:created ?rlatest ; np:hasAssertion ?ra ; npx:introduces ?rfip .\n filter not exists { ?rnpx npx:invalidates ?rnp ; npa:hasValidSignatureForPublicKeyHash ?rpk . }\n }\n graph ?ra { ?rfip a fip:Reference-FAIR-Implementation-Profile ; rdfs:label ?rfiplabel ; fip:declared-by ?rcommunity . }\n } }\n # FAIR Implementation Communities: latest declaration each, label required.\n { select (count(distinct ?community) as ?n_fic) where {\n\n graph npa:graph {\n ?cnp npx:hasNanopubType fip:FAIR-Implementation-Community ; npx:introduces ?community ; npa:hasValidSignatureForPublicKey ?cpk ;\n dct:created ?cdate ; np:hasAssertion ?ca .\n filter(str(?cdate) > \"2022\")\n filter not exists { ?cnp npx:hasNanopubType npx:ExampleNanopub . }\n filter not exists { ?cx npx:invalidates ?cnp ; npa:hasValidSignatureForPublicKey ?cpk . }\n }\n graph ?ca { ?community rdfs:label ?clabel . }\n optional {\n graph npa:graph {\n ?cnp2 npx:hasNanopubType fip:FAIR-Implementation-Community ; npx:introduces ?community ; npa:hasValidSignatureForPublicKey ?cpk2 ; dct:created ?cdate2 .\n filter not exists { ?cx2 npx:invalidates ?cnp2 ; npa:hasValidSignatureForPublicKey ?cpk2 . }\n }\n filter(?cdate2 > ?cdate)\n }\n filter(!bound(?cdate2))\n } }\n # Curated FSRs: qualified by the GO FAIR Foundation with a key on the curators\n # list, counting only resources whose qualified declaration is still current.\n { select (count(distinct ?cfsr) as ?n_curated) where {\n\n { select ?cfsr ?cdate3 where {\n { select distinct ?qnp_target where {\n { select ?curators_a where {\n graph npa:graph {\n npa:hasValidSignatureForPublicKey ?curators_pk .\n ?curators_np npa:hasValidSignatureForPublicKey ?curators_pk ; np:hasAssertion ?curators_a .\n filter not exists { ?curators_x npx:invalidates ?curators_np ; npa:hasValidSignatureForPublicKey ?curators_pk . }\n }\n graph npa:networkGraph {\n ?curators_np (npx:supersedes)* .\n filter not exists { ?curators_y npx:supersedes ?curators_np }\n }\n } }\n graph ?qa { ?qualifier npx:qualifies ?qnp_target . }\n values ?qualifier { }\n graph npa:graph {\n ?qnp np:hasAssertion ?qa ; npa:hasValidSignatureForPublicKey ?qpk .\n filter not exists { ?qx npx:invalidates ?qnp ; npa:hasValidSignatureForPublicKey ?qpk . }\n }\n graph ?curators_a { ?qk npx:hasPublicKey ?qpk . }\n } }\n graph npa:graph {\n ?qnp_target npx:introduces|npx:describes ?cfsr ; rdfs:label ?cfsrlabel ; npa:hasValidSignatureForPublicKey ?cpk3 ; dct:created ?cdate3 .\n ?qnp_target npx:hasNanopubType ?cfsrtype . values ?cfsrtype { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource }\n filter(str(?cdate3) > \"2022\")\n filter not exists { ?qnp_target npx:hasNanopubType npx:ExampleNanopub . }\n filter not exists { ?cx3 npx:invalidates ?qnp_target ; npa:hasValidSignatureForPublicKey ?cpk3 . }\n }\n } }\n # Anti-join written as OPTIONAL + !bound rather than FILTER NOT EXISTS / MINUS:\n # the left join forces the ~320 candidates to be evaluated first, so the newer\n # declaration lookup is an index probe per candidate instead of a full scan.\n optional {\n graph npa:graph {\n ?cnp4 npx:introduces|npx:describes ?cfsr ; npa:hasValidSignatureForPublicKey ?cpk4 ; dct:created ?cdate4 .\n ?cnp4 npx:hasNanopubType ?cfsrtype4 . values ?cfsrtype4 { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource }\n filter not exists { ?cnp4 npx:hasNanopubType npx:ExampleNanopub . }\n filter not exists { ?cx4 npx:invalidates ?cnp4 ; npa:hasValidSignatureForPublicKey ?cpk4 . }\n }\n filter(?cdate4 > ?cdate3)\n }\n filter(!bound(?cdate4))\n } }\n bind(concat(\n '',\n '',\n '',\n str(?n_fsr),\n '',\n 'FAIR Supporting Resources',\n '',\n '',\n '',\n '',\n str(?n_fip),\n '',\n 'FIPs',\n '',\n '',\n '',\n '',\n str(?n_rfip),\n '',\n 'Reference FIPs',\n '',\n '',\n '',\n '',\n str(?n_fic),\n '',\n 'FAIR Communities',\n '',\n '',\n '',\n '',\n str(?n_curated),\n '',\n 'Curated FSRs',\n '',\n '') as ?svg)\n}" . . "Tobias Kuhn" . "2026-09-18T11:47:59Z"^^ . . . . . "Get key figures as SVG" . . . . . . "RSA" . "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzZAkv4Mu1YSUxQMriBnhYunqosX5wpuQ3FjUyzW8wTC51wjCmhsChyhS+mCx7Od+2MTDpdhxDWA+pH1r9AX508X2rIY/sbpMS+pd56e0qKPQ0t4folln1TgamPN9iOlY/yLc2x27AdipWIGXUdtL2iAcb+P/Y5dQS2AkHMS3lP2e5JBL5/bD/10qvTLKvdsqIKts8qjuLpxr9CFbsS2gLjMkXL5D2IsJ0cL5sgmIfS1inLVxIfXrS/OgqYNFqeNznUYCVWfo0g7DKjnjiICz3omeQeJFLYwlJ6PhUhYDQS6O318DGwUCwhnuXbBbwL9evZa2I/0Pwu5xpZdNLYJ5UwIDAQAB" . "T6c0Vji/zghXgd7CAfB8R1axn/+b9oMH/9HPxELYnCyBkkU4foLunI8HrJxzEcxSGQ04C6uwCf9O11enTFGTftqD+xaMQzWGyjgM0Gy12nFf1+8s0iVCW07hvnkRSGsSTE/jvskXBuSH9u2yBytyJBvJWISR216lrP9hA4XGAo1gXtODWd+EB+tLibxb48wjCcCh5MinAwR5iA0PFYIhEFrOTkMbB/XO9rqwZKsfpa1HDwGRMjFS8AoYtEppc5GQWm3LgI5MbhfHi4mRVr8nWnb1vKGgeDZ5wMxhClabl3U1fJRc/KIWFC709p/jk19Lmxj42y3zDQQUqe0VcW2MFA==" . . .