@prefix this: . @prefix sub: . @prefix np: . @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:fips-by-domain a ; dct:description "This query returns the FAIR Supporting Resources (FSRs) per scientific domain and for specific FIP (sub-)Questions. The parameter \"Domain\" expects the IRI of a domain. The parameter \"Question_Codes\" expects one or more FIP questions (e.g. F1-MD, I3-D)."; dct:license ; rdfs:label "FSR by domain and question"; ; """prefix rdfs: prefix np: prefix npa: prefix npx: prefix dct: prefix fip: select ?fsr (min(?fsr_label_x) as ?fsr_label) (group_concat(distinct str(?community); separator=\" \") as ?communities_multi_iri) (group_concat(distinct replace(str(?community), \"^.*[#/]\", \"\"); separator=\"\\n\") as ?communities_label_multi) (group_concat(distinct ?qcode; separator=\", \") as ?questions) (group_concat(distinct str(?subdomain); separator=\" \") as ?subdomains_multi_iri) (group_concat(distinct replace(str(?subdomain), \"^.*[#/]\", \"\"); separator=\"\\n\") as ?subdomains_label_multi) (count(distinct ?community) as ?count) (min(?fsrnp_x) as ?np) (min(\"^\") as ?np_label) where { { select distinct ?community ?subdomain where { graph npa:graph { ?cnp npa:hasValidSignatureForPublicKey ?cpubkey ; npx:hasNanopubType fip:FAIR-Implementation-Community ; np:hasAssertion ?ca . ?cnp npx:introduces|npx:describes ?community . filter not exists { ?cnp npx:hasNanopubType npx:ExampleNanopub . } filter not exists { ?cnpx npx:invalidates ?cnp ; npa:hasValidSignatureForPublicKey ?cpubkey . } } graph ?ca { ?community a fip:FAIR-Implementation-Community ; fip:has-research-domain ?subdomain . } graph { ?subdomain rdfs:subClassOf* ?_domain_iri . } } } graph ?fa { ?fip fip:declared-by ?community ; fip:has-declaration-index ?index . } graph npa:graph { ?fipnp np:hasAssertion ?fa ; npx:hasNanopubType fip:FAIR-Implementation-Profile ; npa:hasValidSignatureForPublicKey ?fippubkey . filter not exists { ?fipnp npx:hasNanopubType npx:ExampleNanopub . } filter not exists { ?fipnpx npx:invalidates ?fipnp ; npa:hasValidSignatureForPublicKey ?fippubkey . } ?index npa:hasValidSignatureForPublicKey ?ipubkey . filter not exists { ?indexx npx:invalidates ?index ; npa:hasValidSignatureForPublicKey ?ipubkey . } } graph npa:networkGraph { ?index npx:includesElement ?dnp . } graph npa:graph { ?dnp npx:hasNanopubType fip:FIP-Declaration ; np:hasAssertion ?da . } graph ?da { ?decl fip:declared-by ?community ; fip:refers-to-question ?question ; (fip:declares-current-use-of|fip:declares-planned-use-of) ?fsr . } # Extract the short question code (e.g., F1, R1.1) bind(replace(str(?question), \"^.*-([^-MD]+(-[MD]+)?)$\", \"$1\") as ?qcode) # MULTI-SELECT FILTER # If ?_question_codes is left empty, it ignores the filter. # Otherwise, it checks if the string contains the extracted ?qcode. filter(!bound(?_question_codes) || ?_question_codes = \"\" || contains(?_question_codes, ?qcode)) optional { graph npa:graph { ?fsrnp_x npx:introduces|npx:describes ?fsr ; rdfs:label ?fsr_label_x ; npa:hasValidSignatureForPublicKey ?fpubkey . filter not exists { ?fsrnp_x npx:hasNanopubType npx:ExampleNanopub . } filter not exists { ?fsrnpx npx:invalidates ?fsrnp_x ; npa:hasValidSignatureForPublicKey ?fpubkey . } } } filter( bound(?fsrnp_x) || not exists { graph npa:graph { ?onp npx:introduces|npx:describes ?fsr . } } ) } group by ?fsr order by desc(?count)""" . } sub:provenance { sub:assertion prov:wasAttributedTo orcid:0000-0002-1267-0234 . } sub:pubinfo { orcid:0000-0002-0319-6542 foaf:name "Dario Bijker" . orcid:0000-0002-1267-0234 foaf:name "Tobias Kuhn" . this: dct:created "2026-08-20T13:06:00.714Z"^^xsd:dateTime; dct:creator orcid:0000-0002-0319-6542, orcid:0000-0002-1267-0234; dct:license ; npx:embeds sub:fips-by-domain; npx:wasCreatedAt ; prov:wasDerivedFrom ; nt:wasCreatedFromProvenanceTemplate ; nt:wasCreatedFromPubinfoTemplate , , , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfUo0FLu1y2EeueL40lqkVdm9fTJa6WhF6MhyjhKAagbuaWe1wwyk453ot8KAQ3aHtL3B8Ze/aLf+wHrBhS0nz4wS6urc8ksIzlLCoa9KIfa0JuQunBLFptV0U9fTR8kDlPoB+klNrUfzeCXmkdgnnUiiwBoN+j1eN87XMSHKI3wIDAQAB"; npx:hasSignature "IC1gz52D5NlXXnBvHRttgAEGcmebdBLYcOgpGMisPczz7aBNEnCYvAnbheMCGScTf0cOP+85rvakrfFIAcFUzF9GK0msjjgMXxu2twKTytB6PcSUxu1uUmm9Bfy+JgjuHj+/6CeQgIjidmjsHYecuN/uF89DzO4/XpaqUyFJNv8="; npx:hasSignatureTarget this:; npx:signedBy orcid:0000-0002-0319-6542 . }