https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/Head https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw http://www.nanopub.org/nschema#hasAssertion https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/assertion https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw http://www.nanopub.org/nschema#hasProvenance https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/provenance https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw http://www.nanopub.org/nschema#hasPublicationInfo https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/pubinfo https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.nanopub.org/nschema#Nanopublication https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/assertion https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/get-fsr-types http://purl.org/dc/terms/description Returns one row with an SVG column: a horizontal bar chart of the number of metadata nanopublications of FAIR Supporting Resources (FSRs, including FAIR-Enabling Resources) per FSR type. The types are read dynamically from the FIP Ontology: every class in the fip namespace that is a (transitive) subclass of FAIR-Supporting-Resource, excluding the structural classes (FER/FSR, Available-*, *-to-be-Developed). Type labels come from the published class definitions. Example nanopublications and invalidated nanopublications are excluded. Bars are sorted by count, and each label links root-relatively to the part page of the FSR type (/part?id=...), where the resources of that type are shown. Bar positions are computed with rank subqueries, so the output is deterministic. This is the query behind the "FSR types" SVG view, and it replaces the tabular version of this query. https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/get-fsr-types http://purl.org/dc/terms/license http://www.apache.org/licenses/LICENSE-2.0 https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/get-fsr-types http://www.w3.org/1999/02/22-rdf-syntax-ns#type https://w3id.org/kpxl/grlc/grlc-query https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/get-fsr-types http://www.w3.org/2000/01/rdf-schema#label Get FSR types as SVG https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/get-fsr-types https://w3id.org/kpxl/grlc/endpoint https://w3id.org/np/l/nanopub-query-1.1/repo/full https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/get-fsr-types 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 dct: <http://purl.org/dc/terms/> prefix fip: <https://w3id.org/fair/fip/terms/> select ?svg where { # One bar per FSR type, ordered by count: rank is the number of types scoring at # least as high, which gives the row its y position. { select (group_concat(?bar; separator="") as ?bars) where { { select ?type ?label ?n ?max (count(*) as ?rank) where { { select distinct ?type (min(?label_x) as ?label) (count(distinct ?N_np) as ?n) where { { select distinct ?type (min(?tl) as ?label_x) where { ?type rdfs:subClassOf+ fip:FAIR-Supporting-Resource . filter(strstarts(str(?type), "https://w3id.org/fair/fip/terms/")) filter(?type not in (fip:FAIR-Enabling-Resource, fip:FAIR-Supporting-Resource, fip:Available-FAIR-Enabling-Resource, fip:Available-FAIR-Supporting-Resource, fip:FAIR-Enabling-Resource-to-be-Developed, fip:FAIR-Supporting-Resource-to-be-Developed)) graph npa:graph { ?tnpa npx:introduces ?type ; np:hasAssertion ?taa . } graph ?taa { ?type rdfs:label ?tl . } } group by ?type } graph npa:graph { ?N_np npx:hasNanopubType ?type ; npx:hasNanopubType ?fsrtypea ; npa:hasValidSignatureForPublicKey ?pka ; dct:created ?datea . values ?fsrtypea { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource } filter(str(?datea) > "2022") filter not exists { ?N_np npx:hasNanopubType npx:ExampleNanopub . } filter not exists { ?xa npx:invalidates ?N_np ; npa:hasValidSignatureForPublicKey ?pka . } } } group by ?type } { select (max(?mn) as ?max) where { { select distinct ?mt (min(?ml_x) as ?ml) (count(distinct ?mn_np) as ?mn) where { { select distinct ?mt (min(?tl) as ?ml_x) where { ?mt rdfs:subClassOf+ fip:FAIR-Supporting-Resource . filter(strstarts(str(?mt), "https://w3id.org/fair/fip/terms/")) filter(?mt not in (fip:FAIR-Enabling-Resource, fip:FAIR-Supporting-Resource, fip:Available-FAIR-Enabling-Resource, fip:Available-FAIR-Supporting-Resource, fip:FAIR-Enabling-Resource-to-be-Developed, fip:FAIR-Supporting-Resource-to-be-Developed)) graph npa:graph { ?tnpb npx:introduces ?mt ; np:hasAssertion ?tab . } graph ?tab { ?mt rdfs:label ?tl . } } group by ?mt } graph npa:graph { ?mn_np npx:hasNanopubType ?mt ; npx:hasNanopubType ?fsrtypeb ; npa:hasValidSignatureForPublicKey ?pkb ; dct:created ?dateb . values ?fsrtypeb { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource } filter(str(?dateb) > "2022") filter not exists { ?mn_np npx:hasNanopubType npx:ExampleNanopub . } filter not exists { ?xb npx:invalidates ?mn_np ; npa:hasValidSignatureForPublicKey ?pkb . } } } group by ?mt } } } { select distinct ?type2 (min(?label2_x) as ?label2) (count(distinct ?n2_np) as ?n2) where { { select distinct ?type2 (min(?tl) as ?label2_x) where { ?type2 rdfs:subClassOf+ fip:FAIR-Supporting-Resource . filter(strstarts(str(?type2), "https://w3id.org/fair/fip/terms/")) filter(?type2 not in (fip:FAIR-Enabling-Resource, fip:FAIR-Supporting-Resource, fip:Available-FAIR-Enabling-Resource, fip:Available-FAIR-Supporting-Resource, fip:FAIR-Enabling-Resource-to-be-Developed, fip:FAIR-Supporting-Resource-to-be-Developed)) graph npa:graph { ?tnpc npx:introduces ?type2 ; np:hasAssertion ?tac . } graph ?tac { ?type2 rdfs:label ?tl . } } group by ?type2 } graph npa:graph { ?n2_np npx:hasNanopubType ?type2 ; npx:hasNanopubType ?fsrtypec ; npa:hasValidSignatureForPublicKey ?pkc ; dct:created ?datec . values ?fsrtypec { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource } filter(str(?datec) > "2022") filter not exists { ?n2_np npx:hasNanopubType npx:ExampleNanopub . } filter not exists { ?xc npx:invalidates ?n2_np ; npa:hasValidSignatureForPublicKey ?pkc . } } } group by ?type2 } filter(?n2 > ?n || (?n2 = ?n && str(?type2) <= str(?type))) } group by ?type ?label ?n ?max } bind(34 + (?rank - 1) * 20 as ?y) bind(round(280 * ?n / ?max) as ?w) bind(replace(replace(replace(?label, "&", "&amp;"), "<", "&lt;"), ">", "&gt;") as ?lbl) bind(concat( '<a href="/part?id=', encode_for_uri(str(?type)), '"><text x="280" y="', str(?y + 13), '" text-anchor="end" font-size="12" fill="#333">', ?lbl, '</text></a>', '<rect x="288" y="', str(?y + 2), '" width="', str(?w), '" height="14" fill="#4a7fb5"></rect>', '<text x="', str(292 + ?w), '" y="', str(?y + 13), '" font-size="11" fill="#333">', str(?n), '</text>' ) as ?bar) } } { select (count(*) as ?k) where { { select distinct ?kt (min(?kl_x) as ?kl) (count(distinct ?kn_np) as ?kn) where { { select distinct ?kt (min(?tl) as ?kl_x) where { ?kt rdfs:subClassOf+ fip:FAIR-Supporting-Resource . filter(strstarts(str(?kt), "https://w3id.org/fair/fip/terms/")) filter(?kt not in (fip:FAIR-Enabling-Resource, fip:FAIR-Supporting-Resource, fip:Available-FAIR-Enabling-Resource, fip:Available-FAIR-Supporting-Resource, fip:FAIR-Enabling-Resource-to-be-Developed, fip:FAIR-Supporting-Resource-to-be-Developed)) graph npa:graph { ?tnpd npx:introduces ?kt ; np:hasAssertion ?tad . } graph ?tad { ?kt rdfs:label ?tl . } } group by ?kt } graph npa:graph { ?kn_np npx:hasNanopubType ?kt ; npx:hasNanopubType ?fsrtyped ; npa:hasValidSignatureForPublicKey ?pkd ; dct:created ?dated . values ?fsrtyped { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource } filter(str(?dated) > "2022") filter not exists { ?kn_np npx:hasNanopubType npx:ExampleNanopub . } filter not exists { ?xd npx:invalidates ?kn_np ; npa:hasValidSignatureForPublicKey ?pkd . } } } group by ?kt } } } bind(34 + ?k * 20 + 8 as ?height) bind(concat( '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 ', str(?height), '" width="640" height="', str(?height), '" font-family="sans-serif">', '<text x="0" y="16" font-size="14" font-weight="bold" fill="#222">FAIR Supporting Resources per type</text>', ?bars, '</svg>') as ?svg) } https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/provenance https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/assertion http://www.w3.org/ns/prov#wasAttributedTo https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/pubinfo https://orcid.org/0000-0002-1267-0234 http://xmlns.com/foaf/0.1/name Tobias Kuhn https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw http://purl.org/dc/terms/created 2026-09-18T09:07:12Z https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw http://purl.org/dc/terms/creator https://w3id.org/np/RAlgF8um78nQxxJhJTNMZ3tpWJOntfTULJWMWr5Fmo4zU/fairimpl-bot https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw http://purl.org/dc/terms/license https://creativecommons.org/licenses/by/4.0/ https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw http://purl.org/nanopub/x/embeds https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/get-fsr-types https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw http://purl.org/nanopub/x/supersedes https://w3id.org/np/RAjcweN6wmuQUlTFHbgCqYcnpsAQ5BDa_CxXP8kWRKnds https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw http://www.w3.org/2000/01/rdf-schema#label Get FSR types as SVG https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw https://w3id.org/np/o/ntemplate/wasCreatedFromProvenanceTemplate https://w3id.org/np/RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RACJ58Gvyn91LqCKIO9zu1eijDQIeEff28iyDrJgjSJF8 https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RAoTD7udB2KtUuOuAe74tJi1t3VzK0DyWS7rYVAq1GRvw https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw https://w3id.org/np/o/ntemplate/wasCreatedFromTemplate https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/sig http://purl.org/nanopub/x/hasAlgorithm RSA https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/sig http://purl.org/nanopub/x/hasPublicKey MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzZAkv4Mu1YSUxQMriBnhYunqosX5wpuQ3FjUyzW8wTC51wjCmhsChyhS+mCx7Od+2MTDpdhxDWA+pH1r9AX508X2rIY/sbpMS+pd56e0qKPQ0t4folln1TgamPN9iOlY/yLc2x27AdipWIGXUdtL2iAcb+P/Y5dQS2AkHMS3lP2e5JBL5/bD/10qvTLKvdsqIKts8qjuLpxr9CFbsS2gLjMkXL5D2IsJ0cL5sgmIfS1inLVxIfXrS/OgqYNFqeNznUYCVWfo0g7DKjnjiICz3omeQeJFLYwlJ6PhUhYDQS6O318DGwUCwhnuXbBbwL9evZa2I/0Pwu5xpZdNLYJ5UwIDAQAB https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/sig http://purl.org/nanopub/x/hasSignature gwLzEZWwLnkFCfUaGJbNYb1QZq04snCUux14Fg6X56j4KUWKB5xsXy8K3DC5FZjF6wgMgIIBToM7MBn+Lzs2SlrleVtO/UQCLw3T6kOt1Dvx/MtK4uaAVvfyz+v2VZ9R/6Fj87tj7bEND5Y/xNu0+uY00OfkJbmZyW2DelfuWNqkJ5iYZgpnVZxxycosPqVNntbUq4Upk9jWgkRnfX9RQlqS8fVsATT2CV3Ok0D8WjrZlG9GIMPpkME2b1QevYxbt0iV0mpSib2HmAvf5Ziu2jgyrZoAvFzW8kb1XafxOrFWXBb5G//VmURjAZSsFHOGDNLBkdJ420RAnNCUY3gQMw== https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/sig http://purl.org/nanopub/x/hasSignatureTarget https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw https://w3id.org/np/RA1wz7dPmE5sjmddMclgHGCXdXCyXnYTUd3a7-sQqZ6Bw/sig http://purl.org/nanopub/x/signedBy https://w3id.org/np/RAlgF8um78nQxxJhJTNMZ3tpWJOntfTULJWMWr5Fmo4zU/fairimpl-bot