sub:assertion {
sub:fers_by_type dct:description "Get FAIR-Enabling Resources by type." ;
dct:license <
http://www.apache.org/licenses/LICENSE-2.0> ;
a <
https://w3id.org/kpxl/grlc/grlc-query> ;
rdfs:label "Get FERs by type" ;
<
https://w3id.org/kpxl/grlc/endpoint> <
https://w3id.org/np/l/nanopub-query-1.1/repo/full> ;
<
https://w3id.org/kpxl/grlc/sparql> """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 search: <http://www.openrdf.org/contrib/lucenesail#>
select distinct ?np ?thing ?description ?label ?date ?types ?qualifier (group_concat(distinct ?community; separator=\" \") as ?communities) ?maxscore where {
{ select ?latest_curators_assertion where {
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 }
}
} }
{ select ?np ?thing ?label ?description ?date (group_concat(distinct ?type; separator=\" \") as ?types) where {
graph npa:graph {
?np rdfs:label ?label ;
dct:description ?description ;
npa:hasValidSignatureForPublicKey ?pubkey ;
dct:created ?date .
?np npx:introduces|npx:describes ?thing .
filter(str(?date) > \"2022\")
filter exists { ?np npx:hasNanopubType ?fsr_type . values ?fsr_type { fip:FAIR-Enabling-Resource fip:FAIR-Supporting-Resource } }
filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }
?np npx:hasNanopubType ?_type_iri .
?np npx:hasNanopubType ?type .
filter(?type != fip:FAIR-Enabling-Resource)
filter(?type != fip:Available-FAIR-Enabling-Resource)
filter(?type != fip:FAIR-Enabling-Resource-to-be-Developed)
filter(?type != fip:FAIR-Supporting-Resource)
filter(?type != fip:Available-FAIR-Supporting-Resource)
filter(?type != fip:FAIR-Supporting-Resource-to-be-Developed)
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
filter not exists {
graph ?da {
?disapprover npx:disapprovesOf ?np .
}
graph npa:graph {
?disapproval_np np:hasAssertion ?da ;
npa:hasValidSignatureForPublicKey ?dpubkey .
filter not exists { ?disapproval_npx npx:invalidates ?disapproval_np ; npa:hasValidSignatureForPublicKey ?dpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?dpubkey .
}
}
} group by ?np ?thing ?label ?description ?date }
optional {
graph ?qa {
?qualifier npx:qualifies ?np .
}
graph npa:graph {
?qualification_np np:hasAssertion ?qa ;
npa:hasValidSignatureForPublicKey ?qpubkey .
filter not exists { ?qualification_npx npx:invalidates ?qualification_np ; npa:hasValidSignatureForPublicKey ?qpubkey . }
}
graph ?latest_curators_assertion {
?qpubkeys npx:hasPublicKey ?qpubkey .
}
}
optional {
graph npa:graph {
?decl_np npx:hasNanopubType fip:FIP-Declaration .
?decl_np np:hasAssertion ?decl_a ;
npa:hasValidSignatureForPublicKey ?decl_pubkey .
filter not exists { ?decl_npx npx:invalidates ?decl_np ; npa:hasValidSignatureForPublicKey ?decl_pubkey . }
}
graph ?decl_a {
?decl a fip:FIP-Declaration .
# ----
# not really needed but seems to make query faster:
values ?use { fip:declares-current-use-of fip:declares-planned-use-of fip:declares-planned-development-of fip:declares-planned-replacement-of }
?decl ?use ?thing .
# ----
?decl fip:declared-by ?community .
}
}
} group by ?np ?thing ?description ?label ?date ?types ?qualifier ?maxscore order by desc(?maxscore)""" .
}