@prefix this: . @prefix sub: . @prefix np: . @prefix grlc: . @prefix dct: . @prefix nt: . @prefix npx: . @prefix xsd: . @prefix rdfs: . @prefix orcid: . @prefix prov: . @prefix foaf: . sub:Head { this: a np:Nanopublication; np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo . } sub:assertion { sub:get-community-fips a grlc:grlc-query; dct:description "For a FAIR Implementation Community, lists its FAIR Implementation Profiles (FIPs and reference FIPs) from their latest non-invalidated nanopublications: the FIP, whether it is a reference FIP, version, number of declarations, and date. Example nanopublications are excluded. FIP nanopublications that a GO FAIR Foundation curator has disapproved of (npx:disapprovesOf, signed with a key from the curators list and not invalidated) are left out, as in the FIPs list and the FIP Wizard lookup."; dct:license ; rdfs:label "Get the FIPs of a community"; grlc:endpoint ; grlc:sparql """prefix rdf: prefix rdfs: prefix np: prefix npa: prefix npx: prefix xsd: prefix dct: prefix owl: prefix foaf: prefix prov: prefix skos: prefix schema: prefix gen: prefix fip: prefix tpff: prefix search: select ?fip (min(?fip_label) as ?fip_label) (max(?rfip_x) as ?rfip) (min(?version) as ?version) (count(distinct ?dnp) as ?declarations) (min(?date) as ?date) (min(?np) as ?np) (\"^\" as ?np_label) where { graph npa:graph { ?np npx:hasNanopubType fip:FAIR-Implementation-Profile ; npx:introduces ?fip ; np:hasAssertion ?a ; npa:hasValidSignatureForPublicKey ?pk ; dct:created ?date . filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . } filter not exists { ?x npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pk . } } { select ?curators_a where { graph npa:graph { npa:hasValidSignatureForPublicKey ?curators_pk . ?curators_np npa:hasValidSignatureForPublicKey ?curators_pk ; np:hasAssertion ?curators_a . filter not exists { ?curators_x npx:invalidates ?curators_np ; npa:hasValidSignatureForPublicKey ?curators_pk . } } graph npa:networkGraph { ?curators_np (npx:supersedes)* . filter not exists { ?curators_y npx:supersedes ?curators_np } } } } filter not exists { graph ?daf { ?disapproverf npx:disapprovesOf ?np . } graph npa:graph { ?dnpf np:hasAssertion ?daf ; npa:hasValidSignatureForPublicKey ?dpkf . filter not exists { ?dxf npx:invalidates ?dnpf ; npa:hasValidSignatureForPublicKey ?dpkf . } } graph ?curators_a { ?dkf npx:hasPublicKey ?dpkf . } } graph ?a { ?fip fip:declared-by ?_community_iri ; rdfs:label ?fip_label . optional { ?fip schema:version| ?version . } optional { ?fip fip:has-declaration-index ?index . } } bind(if(exists { graph npa:graph { ?np npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile . } }, \"✓\", \"\") as ?rfip_x) optional { graph npa:networkGraph { ?index npx:includesElement ?dnp . } } } group by ?fip order by desc(?date) """ . } sub:provenance { sub:assertion prov:wasAttributedTo orcid:0000-0002-1267-0234 . } sub:pubinfo { orcid:0000-0002-1267-0234 foaf:name "Tobias Kuhn" . this: dct:created "2026-11-04T09:42:09Z"^^xsd:dateTime; dct:creator ; dct:license ; npx:embeds sub:get-community-fips; npx:supersedes ; rdfs:label "Get the FIPs of a community"; nt:wasCreatedFromProvenanceTemplate ; nt:wasCreatedFromPubinfoTemplate , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzZAkv4Mu1YSUxQMriBnhYunqosX5wpuQ3FjUyzW8wTC51wjCmhsChyhS+mCx7Od+2MTDpdhxDWA+pH1r9AX508X2rIY/sbpMS+pd56e0qKPQ0t4folln1TgamPN9iOlY/yLc2x27AdipWIGXUdtL2iAcb+P/Y5dQS2AkHMS3lP2e5JBL5/bD/10qvTLKvdsqIKts8qjuLpxr9CFbsS2gLjMkXL5D2IsJ0cL5sgmIfS1inLVxIfXrS/OgqYNFqeNznUYCVWfo0g7DKjnjiICz3omeQeJFLYwlJ6PhUhYDQS6O318DGwUCwhnuXbBbwL9evZa2I/0Pwu5xpZdNLYJ5UwIDAQAB"; npx:hasSignature "QUuk1X7KO5bkTQLRllc2jF5jvqzWjg+pA7gf7LUGZhG0moPQQGbvWV8ejB1aKhE8t3npbHn919qa+EbqCYP1kjJmFO2Kj4X7XjBEg2G6RJTpegIqt4drFlTEkcIcOEumVYOo+bOoGobTfYY1/0WhNkelD+FNp+H49t5EUdu8jj0MrZB9RNeCoGEeuJLr4z2981GFP5ij2QOrlf/IJIMUNctWl7InQtLdWQi1tMWN3VyQywaaq3Uj4lusfvNnmNRDdj8ZbRxYeyoR9Rx4n2F1pJqZCBzpwiyTPq10T5Emd2DeShQrC2nt0WRvMmqPOaRbzrNw/6FzrP7HBI7q/zpp8w=="; npx:hasSignatureTarget this:; npx:signedBy . }