This query allows for searching for resources (FERs etc.) together with the info about whether GO FAIR qualified them. It performs a Lucene full-text search on labels and descriptions, optionally restricted to a given nanopub type, and excludes retracted/superseded nanopublications, example nanopublications, entries from before 2022, and entries disapproved by the curators. This version merges the functions of the earlier 'Search on FAIR Specifications' and 'FSR lookup' queries.
Find GO FAIR qualified things (only valid entries)
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 fip: <https://w3id.org/fair/fip/terms/> prefix prov: <http://www.w3.org/ns/prov#> prefix search: <http://www.openrdf.org/contrib/lucenesail#> select distinct ?thing ?label ?description ?np ?date ?pubkey ?qualifier ?qualification_np (group_concat(distinct ?recommender; separator=" ") as ?recommenders) (group_concat(distinct ?recommendation_np; separator=" ") as ?recommendation_nps) (count(distinct ?recommender) as ?recommender_count) (sample(?fairAssessmentLevel_) as ?fairAssessmentLevel) (sample(?fairAssessmentLevelNp_) as ?fairAssessmentLevelNp) where { { select distinct ?np where { service <https://w3id.org/np/l/nanopub-query-1.1/repo/text> { { ?np search:matches [ search:query ?_searchterm ; search:property rdfs:label ] . } union { ?np search:matches [ search:query ?_searchterm ; search:property dct:description ] . } } } } graph npa:graph { <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> npa:hasValidSignatureForPublicKey ?curators_np_pk . ?latest_curators_np npa:hasValidSignatureForPublicKey ?curators_np_pk . filter not exists { ?latest_curators_npx npx:invalidates ?latest_curators_np ; npa:hasValidSignatureForPublicKey ?curators_np_pk . } ?latest_curators_np np:hasAssertion ?latest_curators_assertion . } graph npa:networkGraph { ?latest_curators_np (npx:supersedes)* <https://w3id.org/np/RA27Uhopq4MHZziL2lKXX-wTb1jz4KVLbHaupxyAcCt9Y> . filter not exists { ?latest_curators_npxx npx:supersedes ?latest_curators_np } } graph npa:graph { ?np npx:hasNanopubType ?__type_iri . ?np npa:hasValidSignatureForPublicKey ?pubkey . filter not exists { ?retraction npx:retracts ?np ; npa:hasValidSignatureForPublicKey ?pubkey . } filter not exists { ?newversion npx:supersedes ?np ; npa:hasValidSignatureForPublicKey ?pubkey . } filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . } ?np (npx:introduces|npx:describes) ?thing . ?np rdfs:label ?label . optional { ?np dct:description ?description . } ?np dct:created ?date . filter(str(?date) > "2022") } optional { graph npa:graph { ?disapproval npa:hasValidSignatureForPublicKey ?dpubkey . } graph ?latest_curators_assertion { ?dpubkeys npx:hasPublicKey ?dpubkey . } graph npa:graph { filter not exists { ?disapproval_x npx:invalidates ?disapproval ; npa:hasValidSignatureForPublicKey ?dpubkey . } ?disapproval np:hasAssertion ?da . } graph ?da { ?dsomebody ( npx:disapproves-of | npx:disapprovesOf ) ?np . } } filter(!bound(?disapproval)) # Faster than "filter not exists" for some reason optional { graph npa:graph { ?recommendation_np npx:hasNanopubType fip:recommended-by . ?recommendation_np npa:hasValidSignatureForPublicKey ?rpubkey . filter not exists { ?recommendation_np_x npx:invalidates ?recommendation_np ; npa:hasValidSignatureForPublicKey ?rpubkey . } ?recommendation_np np:hasAssertion ?ra . ?recommendation_np np:hasProvenance ?rp . } graph ?ra { ?thing fip:recommended-by ?recommender . } graph ?rp { ?ra prov:wasDerivedFrom ?rfip_np . } graph npa:graph { ?rfip_np npx:hasNanopubType fip:Reference-FAIR-Implementation-Profile . ?rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey . ?latest_rfip_np npa:hasValidSignatureForPublicKey ?rfip_pubkey . filter not exists { ?latest_rfip_npx npx:invalidates ?latest_rfip_np ; npa:hasValidSignatureForPublicKey ?rfip_pubkey . } } graph npa:networkGraph { ?latest_rfip_np (npx:supersedes)* ?rfip_np . } graph ?rfip_qa { ?rfip_qualifier npx:qualifies ?latest_rfip_np . } graph npa:graph { ?rfip_qualification_np np:hasAssertion ?rfip_qa . ?rfip_qualification_np npx:hasNanopubType npx:qualifies . ?rfip_qualification_np npa:hasValidSignatureForPublicKey ?rfip_qpubkey . filter not exists { ?rfip_qualification_np_x npx:invalidates ?rfip_qualification_np ; npa:hasValidSignatureForPublicKey ?rfip_qpubkey . } } graph ?latest_curators_assertion { ?rfip_qpubkeys npx:hasPublicKey ?rfip_qpubkey . } } optional { graph npa:graph { ?qualification_np npx:hasNanopubType npx:qualifies . ?qualification_np npa:hasValidSignatureForPublicKey ?qpubkey . } graph ?latest_curators_assertion { ?qpubkeys npx:hasPublicKey ?qpubkey . } graph npa:graph { filter not exists { ?qualification_np_x npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . } ?qualification_np np:hasAssertion ?qa . } graph ?qa { ?qualifier npx:qualifies ?np . } } optional { graph npa:graph { ?fairAssessmentLevelNp_ npx:hasNanopubType fip:has-FAIR-assessment . ?fairAssessmentLevelNp_ npa:hasValidSignatureForPublicKey ?lpubkey . filter not exists { ?fairAssessmentLevelNp_x npx:invalidates ?fairAssessmentLevelNp_ ; npa:hasValidSignatureForPublicKey ?lpubkey . } ?fairAssessmentLevelNp_ np:hasAssertion ?la . } graph ?latest_curators_assertion { ?lpubkeys npx:hasPublicKey ?lpubkey . } graph ?la { ?thing fip:has-FAIR-assessment ?fairAssessmentLevel_ . } } } group by ?thing ?label ?description ?np ?date ?pubkey ?qualifier ?qualification_np order by desc(?recommender_count) asc(?label)