@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:fair-community-search-by-domain a grlc:grlc-query; dct:description "Full-text search over FAIR Implementation Communities restricted to a research domain: like the FAIR community search, but only communities whose research domain is the given domain or one of its sub-domains (resolved through the Research domains (SRAO) resource of the FAIR Implementation Space) are returned. Pass the domain IRI as it appears in SRAO (e.g. http://purl.obolibrary.org/obo/OMIT_0011790 for Natural Science)."; dct:license ; rdfs:label "FAIR community search by domain"; 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 ?community (min(?community_label) as ?community_label) (group_concat(distinct ?ctype_label; separator=\", \") as ?type) (group_concat(distinct str(?domain); separator=\" \") as ?domains_multi_iri) (group_concat(distinct ?domain_label; separator=\"\\n\") as ?domains_label_multi) (coalesce(min(?fips_x), 0) as ?fips) (max(?qualified_x) as ?qualified) (max(?score) as ?score) (min(?np) as ?np) (\"^\" as ?np_label) where { { select distinct ?subdomain where { service { graph npa:graph { ?srao_np npx:describes ; npa:hasValidSignatureForPublicKeyHash \"9069576dbf1967483c9a3095fb8a7c38b4770974a1733c681d5969e14e455e2b\" ; np:hasAssertion ?srao_a . filter not exists { ?srao_x npx:invalidates ?srao_np ; npa:hasValidSignatureForPublicKeyHash \"9069576dbf1967483c9a3095fb8a7c38b4770974a1733c681d5969e14e455e2b\" . } } graph ?srao_a { ?subdomain rdfs:subClassOf* ?_domain_iri . } } } } { select ?np ?community_label ?date (max(?score_x) as ?score) where { graph npa:graph { ?np npx:hasNanopubType fip:FAIR-Implementation-Community ; rdfs:label ?community_label ; npa:hasValidSignatureForPublicKey ?pk ; dct:created ?date . filter(str(?date) > \"2022\") filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . } filter not exists { ?x npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pk . } } ?np search:matches [ search:query ?_query ; search:property npa:hasFilterLiteral ; search:score ?score_x ] . } group by ?np ?community_label ?date order by desc(?score) limit 200 } service { graph npa:graph { ?np np:hasAssertion ?a ; npx:introduces ?community . } graph ?a { ?community fip:has-research-domain ?subdomain ; fip:has-research-domain ?domain . optional { ?community a ?ctype . filter(?ctype != fip:FAIR-Implementation-Community && strstarts(str(?ctype), \"https://w3id.org/fair/fip/terms/\")) } } } bind(replace(replace(str(?ctype), \"^.*/\", \"\"), \"-\", \" \") as ?ctype_label) optional { service { graph npa:graph { ?srao_np npx:describes ; npa:hasValidSignatureForPublicKeyHash \"9069576dbf1967483c9a3095fb8a7c38b4770974a1733c681d5969e14e455e2b\" ; np:hasAssertion ?srao_a . filter not exists { ?srao_x npx:invalidates ?srao_np ; npa:hasValidSignatureForPublicKeyHash \"9069576dbf1967483c9a3095fb8a7c38b4770974a1733c681d5969e14e455e2b\" . } } graph ?srao_a { ?domain rdfs:label ?domain_label . } } } optional { service { select ?community (count(distinct ?fipnp) as ?fips_x) where { graph npa:graph { ?fipnp npx:hasNanopubType fip:FAIR-Implementation-Profile ; np:hasAssertion ?fa ; npa:hasValidSignatureForPublicKey ?fpk . filter not exists { ?fx npx:invalidates ?fipnp ; npa:hasValidSignatureForPublicKey ?fpk . } } graph ?fa { ?fip fip:declared-by ?community . } } group by ?community } } optional { { select ?qpk where { service { select distinct ?qpk 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 } } graph ?curators_a { ?qk npx:hasPublicKey ?qpk . } } } } } service { graph npa:graph { ?qnp np:hasAssertion ?qa ; npa:hasValidSignatureForPublicKey ?qpk . filter not exists { ?qx npx:invalidates ?qnp ; npa:hasValidSignatureForPublicKey ?qpk . } } graph ?qa { ?qualifier npx:qualifies ?np . } values ?qualifier { } } } bind(if(bound(?qnp), \"✓\", \"\") as ?qualified_x) } group by ?community order by desc(?score) """ . } 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:30:49Z"^^xsd:dateTime; dct:creator ; dct:license ; npx:embeds sub:fair-community-search-by-domain; rdfs:label "FAIR community search by domain"; 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 "KQvAN+seNDPjsYs2EBJVqelQHH3xPROdifpf5Pkmqddo5Y0yOOvvmVrINgNW1o7lF0RD2+V7U51lDtowh15McP72xrYFR7Dj9WSAsPuwxSZl33z58ExuJzo5snuLj1RYODIwtJPMm2GSAZCamYmUSQeM8azCe08K8MVH8inCUQKA7zTUL/RKGAWQf9yIF9pHAEhoJ+/FIod2IsCxwcCUu1xCJpe9ksWmdo+ALNXg3EPnkyDwDJuV8RBEXHjXR1y7+jNN6oK3Ru5BL0g4gKx3T1iWDf9szd+joeaDO0q9plw4hbWEvdOtb/nAxKWGqAAPLzHTgcyNjrF1RaJwq4Rdow=="; npx:hasSignatureTarget this:; npx:signedBy . }