@prefix dcterms: .
@prefix this: .
@prefix sub: .
@prefix np: .
@prefix nt: .
@prefix npx: .
@prefix xsd: .
@prefix rdfs: .
@prefix orcid: .
@prefix prov: .
@prefix foaf: .
sub:Head {
this: np:hasAssertion sub:assertion;
np:hasProvenance sub:provenance;
np:hasPublicationInfo sub:pubinfo;
a np:Nanopublication .
}
sub:assertion {
sub:find-gofair-qualified-things dcterms:description "This query allows for searching for resources (FERs etc.) together with the info about whether GO FAIR qualified them.";
dcterms:license ;
a ;
rdfs:label "Find GO FAIR qualified things";
;
"""prefix rdfs:
prefix np:
prefix npa:
prefix npx:
prefix xsd:
prefix dct:
prefix fip:
select distinct ?thing ?label ?description ?np ?date ?pubkey ?retraction ?newversion ?qualifier ?qualification_np (group_concat(?recommender; separator=\" \") as ?recommenders) (group_concat(?recommendation_np; separator=\" \") as ?recommendation_nps) where {
graph npa:graph {
?np npx:hasNanopubType ?__type_iri .
?np npa:hasValidSignatureForPublicKey ?pubkey .
optional { ?retraction npx:retracts ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
optional { ?newversion npx:supersedes ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
?np (npx:introduces|npx:describes) ?thing .
?np rdfs:label ?label .
?np dct:description ?description .
?np dct:created ?date .
filter(str(?date) > \"2022\")
}
bind(concat(\" \",lcase(str(?label)),\" \",lcase(str(?description)),\" \") as ?text)
filter( contains(?text, lcase(str(?_searchterm))) )
optional {
graph npa:graph {
?disapproval np:hasAssertion ?da .
?disapproval npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_x npx:invalidates ?disapproval ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph {
?dpubkeys npx:hasPublicKey ?dpubkey .
}
graph ?da {
?dsomebody ( npx:disapproves-of | npx:disapprovesOf ) ?np .
}
} filter(!bound(?disapproval)) # Faster than \"filter not exists\" for some reason
optional {
graph npa:graph {
?qualification_np npx:hasNanopubType npx:qualifies .
?qualification_np np:hasAssertion ?qa .
?qualification_np npa:hasValidSignatureForPublicKey ?qpubkey .
filter not exists { ?qualification_np_x npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
}
graph {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
graph ?qa {
?qualifier npx:qualifies ?np .
}
}
optional {
graph npa:graph {
?recommendation_np npx:hasNanopubType fip:recommended-by .
?recommendation_np np:hasAssertion ?ra .
?recommendation_np npa:hasValidSignatureForPublicKey ?rpubkey .
filter not exists { ?recommendation_np_x npx:invalidates ?recommendation_np ; npa:hasValidSignatureForPublicKey ?rpubkey . }
}
graph {
?rpubkeys npx:hasPublicKey ?rpubkey .
}
graph ?ra {
?thing fip:recommended-by ?recommender .
}
}
}
group by ?thing ?label ?description ?np ?date ?pubkey ?retraction ?newversion ?qualifier ?qualification_np
order by asc(?label)""" .
}
sub:provenance {
sub:assertion prov:wasAttributedTo orcid:0000-0002-1267-0234 .
}
sub:pubinfo {
orcid:0000-0002-1267-0234 foaf:name "Tobias Kuhn" .
this: dcterms:created "2025-06-16T12:31:41.011Z"^^xsd:dateTime;
dcterms:creator orcid:0000-0002-1267-0234;
dcterms:license ;
npx:embeds sub:find-gofair-qualified-things;
npx:supersedes ;
npx:wasCreatedAt ;
nt:wasCreatedFromProvenanceTemplate ;
nt:wasCreatedFromPubinfoTemplate ,
, ;
nt:wasCreatedFromTemplate .
sub:sig npx:hasAlgorithm "RSA";
npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD4Wj537OijfOWVtsHMznuXKISqBhtGDQZfdO6pbb4hg9EHMcUFGTLbWaPrP783PHv8HMAAPjvEkHLaOHMIknqhaIa5236lfBO3r+ljVdYBElBcLvROmwG+ZGtmPNZf7lMhI15xf5TfoaSa84AFRd5J2EXekK6PhaFQhRm1IpSYtwIDAQAB";
npx:hasSignature "jEyZ5rk8Jo7Z63vYVQZWZMqvQ2KUfSqX9pz830GWF+/9MLBuqdWGKdiITRC/hTpD2Ep1gxSEkmWdsDq/pNesu8snGzFlj53VngxfZiR/hZYebA6MLNE3CLJkFVREKPb1X1i2KxQFNzM6Y1EcmamswjlHB06A1D8gub9cq8WHh98=";
npx:hasSignatureTarget this:;
npx:signedBy orcid:0000-0002-1267-0234 .
}