https://w3id.org/np/RA9xkdgKWyRCd7n0hh3jEXVJA8PVQoN7v6b1z76r495oc
.trig | .trig.txt | .jelly | .jelly.txt | .jsonld | .jsonld.txt | .nq | .nq.txt | .xml | .xml.txt
@prefix this: <https://w3id.org/np/RA9xkdgKWyRCd7n0hh3jEXVJA8PVQoN7v6b1z76r495oc> .
@prefix sub: <https://w3id.org/np/RA9xkdgKWyRCd7n0hh3jEXVJA8PVQoN7v6b1z76r495oc/> .
@prefix np: <http://www.nanopub.org/nschema#> .
@prefix grlc: <https://w3id.org/kpxl/grlc/> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix nt: <https://w3id.org/np/o/ntemplate/> .
@prefix npx: <http://purl.org/nanopub/x/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix orcid: <https://orcid.org/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
sub:Head {
this: a np:Nanopublication;
np:hasAssertion sub:assertion;
np:hasProvenance sub:provenance;
np:hasPublicationInfo sub:pubinfo .
}
sub:assertion {
sub:get-recommended-fsrs a grlc:grlc-query;
dct:description "Returns the FAIR Supporting Resources (FSRs) that are recommended by at least one FAIR Implementation Community (fip:recommended-by), with their FSR types (from the FIP Ontology typology), the recommending communities, and a checkmark when the latest metadata nanopublication of the FSR is qualified by the GO FAIR Foundation (npx:qualifies signed by a curator from the GFF curators list, qualifier ROR 056j50v04 or one of the gofairfoundation.org IRIs). Disapproved and invalidated nanopublications are excluded.";
dct:license <http://www.apache.org/licenses/LICENSE-2.0>;
rdfs:label "Get recommended FSRs";
grlc:endpoint <https://w3id.org/np/l/nanopub-query-1.1/repo/full>;
grlc:sparql """prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
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/>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
prefix prov: <http://www.w3.org/ns/prov#>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix schema: <https://schema.org/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
prefix fip: <https://w3id.org/fair/fip/terms/>
prefix tpff: <https://w3id.org/fair/3pff/>
prefix search: <http://www.openrdf.org/contrib/lucenesail#>
select ?fsr (min(?fsr_label) as ?fsr_label)
(group_concat(distinct str(?type); separator=\" \") as ?types_multi_iri)
(group_concat(distinct ?type_label; separator=\"\\n\") as ?types_label_multi)
(group_concat(distinct str(?community); separator=\" \") as ?recommended_by_multi_iri)
(group_concat(distinct ?community_label; separator=\"\\n\") as ?recommended_by_label_multi)
(max(?qualified_x) as ?qualified)
(min(?np) as ?np) (\"^\" as ?np_label)
where {
{ select ?curators_a where {
graph npa:graph {
<https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> 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)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> .
filter not exists { ?curators_y npx:supersedes ?curators_np }
}
} }
graph npa:graph {
?rnp npx:hasNanopubType fip:recommended-by ; npa:hasValidSignatureForPublicKey ?rpk ; np:hasAssertion ?ra .
filter not exists { ?rx npx:invalidates ?rnp ; npa:hasValidSignatureForPublicKey ?rpk . }
}
graph ?ra { ?fsr fip:recommended-by ?community . }
graph npa:graph {
?np npx:introduces|npx:describes ?fsr ; rdfs:label ?fsr_label ; npa:hasValidSignatureForPublicKey ?pk ; dct:created ?date ; np:hasAssertion ?a .
?np npx:hasNanopubType ?fsr_type . values ?fsr_type { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource }
filter(str(?date) > \"2022\")
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?x npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pk . }
filter not exists {
?np2 npx:introduces|npx:describes ?fsr ; npa:hasValidSignatureForPublicKey ?pk2 ; dct:created ?date2 .
?np2 npx:hasNanopubType ?fsr_type2 . values ?fsr_type2 { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource }
filter not exists { ?np2 npx:hasNanopubType npx:ExampleNanopub . }
filter not exists { ?x2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKey ?pk2 . }
filter(?date2 > ?date)
}
}
filter not exists {
graph ?da { ?disapprover npx:disapprovesOf ?np . }
graph npa:graph { ?dnp np:hasAssertion ?da ; npa:hasValidSignatureForPublicKey ?dpk . filter not exists { ?dx npx:invalidates ?dnp ; npa:hasValidSignatureForPublicKey ?dpk . } }
graph ?curators_a { ?dk npx:hasPublicKey ?dpk . }
}
optional {
graph npa:graph { ?np npx:hasNanopubType ?type . }
{ select distinct ?type (min(?tl) as ?type_label) 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 { ?tnp npx:introduces ?type ; np:hasAssertion ?ta . }
graph ?ta { ?type rdfs:label ?tl . }
} group by ?type }
}
optional {
graph npa:graph { ?cnp npx:hasNanopubType fip:FAIR-Implementation-Community ; npx:introduces|npx:describes ?community ; np:hasAssertion ?ca ; npa:hasValidSignatureForPublicKey ?cpk . filter not exists { ?cx npx:invalidates ?cnp ; npa:hasValidSignatureForPublicKey ?cpk . } }
graph ?ca { ?community rdfs:label ?community_label . }
}
optional {
graph ?qa { ?qualifier npx:qualifies ?np . }
values ?qualifier { <https://ror.org/056j50v04> <https://www.gofairfoundation.org> <https://www.gofairfoundation.org/> <https://gofairfoundation.org> }
graph npa:graph {
?qnp np:hasAssertion ?qa ; npa:hasValidSignatureForPublicKey ?qpk .
filter not exists { ?qx npx:invalidates ?qnp ; npa:hasValidSignatureForPublicKey ?qpk . }
}
graph ?curators_a { ?qk npx:hasPublicKey ?qpk . }
}
bind(if(bound(?qnp), \"✓\", \"\") as ?qualified_x)
} group by ?fsr order by ?fsr_label
""" .
}
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-09-11T09:23:03Z"^^xsd:dateTime;
dct:creator <https://w3id.org/np/RAlgF8um78nQxxJhJTNMZ3tpWJOntfTULJWMWr5Fmo4zU/fairimpl-bot>;
dct:license <https://creativecommons.org/licenses/by/4.0/>;
npx:embeds sub:get-recommended-fsrs;
rdfs:label "Get recommended FSRs";
nt:wasCreatedFromProvenanceTemplate <https://w3id.org/np/RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU>;
nt:wasCreatedFromPubinfoTemplate <https://w3id.org/np/RACJ58Gvyn91LqCKIO9zu1eijDQIeEff28iyDrJgjSJF8>,
<https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI>;
nt:wasCreatedFromTemplate <https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k> .
sub:sig npx:hasAlgorithm "RSA";
npx:hasPublicKey "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzZAkv4Mu1YSUxQMriBnhYunqosX5wpuQ3FjUyzW8wTC51wjCmhsChyhS+mCx7Od+2MTDpdhxDWA+pH1r9AX508X2rIY/sbpMS+pd56e0qKPQ0t4folln1TgamPN9iOlY/yLc2x27AdipWIGXUdtL2iAcb+P/Y5dQS2AkHMS3lP2e5JBL5/bD/10qvTLKvdsqIKts8qjuLpxr9CFbsS2gLjMkXL5D2IsJ0cL5sgmIfS1inLVxIfXrS/OgqYNFqeNznUYCVWfo0g7DKjnjiICz3omeQeJFLYwlJ6PhUhYDQS6O318DGwUCwhnuXbBbwL9evZa2I/0Pwu5xpZdNLYJ5UwIDAQAB";
npx:hasSignature "v/D4oLkQwae1g1qclXxenv8B2hRl1LCUtI/EYaGr8KoCB1hie0VCh78aOTcZnRkZkgrfS2WhAdLQ2IoDYR6e5khfapBXWoWEoKnlEoObN1BZDOJoZiLTOXC/vuB5o1hpp7Y+PQTAdrV5RTh7SgGu9oWR631WcC5HZ82JAvReWXa7Ouz7SSu3Z/RPWaQN/3YaPL0yENv3a1miqk9ETdm83VIoFUa8zRgew9cLjKQFewvEasbWqnhHPD2eSQWT/qqu15RGxSao/v1LcczW34WsrOCY/dYRe/0M066sPYHX6fNKeriQ29G8rmeLUZhWHmCvr2tPrjlWEiAoS3JNf4lMyQ==";
npx:hasSignatureTarget this:;
npx:signedBy <https://w3id.org/np/RAlgF8um78nQxxJhJTNMZ3tpWJOntfTULJWMWr5Fmo4zU/fairimpl-bot> .
}