https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/Head https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE http://www.nanopub.org/nschema#hasAssertion https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/assertion https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE http://www.nanopub.org/nschema#hasProvenance https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/provenance https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE http://www.nanopub.org/nschema#hasPublicationInfo https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/pubinfo https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.nanopub.org/nschema#Nanopublication https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/assertion https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/get-nanosuggestions http://purl.org/dc/terms/description Returns the nanosuggestions (issues, bug reports, feature requests and tasks) linked to a given space or maintained resource via gen:isRelevantFor, with kind, current status, current assignee, comment count, reporter and date. Anybody may link a nanosuggestion to a resource, but status and assignment are resolved per space: the most recent assertion by a current member (admin, maintainer or member, not observer) of that space wins; if no member has ever set a status, the most recent one from outside is shown and marked as such; with no status at all the nanosuggestion counts as open. Also returns the assignment nanopublication that currently wins, so that an assign action can seed its form from it and arrive pre-filled with the current assignees. https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/get-nanosuggestions http://purl.org/dc/terms/license http://www.apache.org/licenses/LICENSE-2.0 https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/get-nanosuggestions http://www.w3.org/1999/02/22-rdf-syntax-ns#type https://w3id.org/kpxl/grlc/grlc-query https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/get-nanosuggestions http://www.w3.org/2000/01/rdf-schema#label Get nanosuggestions for a resource https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/get-nanosuggestions https://w3id.org/kpxl/grlc/endpoint https://w3id.org/np/l/nanopub-query-1.1/repo/type/29e2f808e4864fca4930806dee70c4a32df54a63ee90156244910a47d3443736 https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/get-nanosuggestions https://w3id.org/kpxl/grlc/sparql prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix dct: <http://purl.org/dc/terms/> prefix foaf: <http://xmlns.com/foaf/0.1/> prefix np: <http://www.nanopub.org/nschema#> prefix npa: <http://purl.org/nanopub/admin/> prefix npx: <http://purl.org/nanopub/x/> prefix schema: <https://schema.org/> prefix as: <https://www.w3.org/ns/activitystreams#> prefix gen: <https://w3id.org/kpxl/gen/terms/> prefix nsug: <https://w3id.org/np/RA5BAdUvlxLWMWFQN3UVKoIQEB_MYTiAoLH1klXJ7z-XI/> select ?item_multi_iri ?item_label_multi ?kind ?status ?assignee ?assignee_label ?comments_multi_iri ?comments_label_multi ?reporter ?reporter_label ?date ?suggestion ?np ?fill_source where { graph npa:graph { ?np npa:hasValidSignatureForPublicKeyHash ?pubkey . filter not exists { ?npi npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . } ?np dct:created ?date . ?np np:hasAssertion ?a . optional { ?np dct:creator ?reporter } } graph ?a { ?suggestion a nsug:Nanosuggestion ; rdfs:label ?title . optional { ?suggestion a ?k . filter(?k != nsug:Nanosuggestion && ?k != schema:Statement) } } filter exists { graph npa:graph { ?lnp npa:hasValidSignatureForPublicKeyHash ?lpk ; np:hasAssertion ?la . filter not exists { ?lnpi npx:invalidates ?lnp ; npa:hasValidSignatureForPublicKeyHash ?lpk . } } graph ?la { values ?_resource_multi_iri {} ?suggestion gen:isRelevantFor ?_resource_multi_iri . } } optional { { select ?suggestion (max(concat(if(?fm,'1','0'), ?sd, ' ', str(?s))) as ?pick) where { service <https://w3id.org/np/l/nanopub-query-1.1/repo/spaces> { select (group_concat(?mpk; separator=' ') as ?memberPubkeys) where { graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?stateG . } values ?_resource_multi_iri {} graph ?stateG { ?_resource_multi_iri npa:isMaintainedBy? ?space . ?ri a gen:RoleInstantiation ; npa:forSpace ?space ; npa:forAgent ?agent ; npa:hasRoleType ?rt . filter(?rt in (gen:AdminRole, gen:MaintainerRole, gen:MemberRole)) ?acct a npa:AccountState ; npa:agent ?agent ; npa:pubkey ?mpk . } } } graph npa:graph { ?snp npa:hasValidSignatureForPublicKeyHash ?spk ; np:hasAssertion ?sa ; dct:created ?sdate . filter not exists { ?snpi npx:invalidates ?snp ; npa:hasValidSignatureForPublicKeyHash ?spk . } } graph ?sa { ?suggestion schema:actionStatus ?s . } bind(str(?sdate) as ?sd) bind(contains(?memberPubkeys, ?spk) as ?fm) } group by ?suggestion } } bind(coalesce(iri(strafter(?pick, ' ')), schema:PotentialActionStatus) as ?st) bind(coalesce(substr(?pick, 1, 1) = '0', false) as ?outside) bind(if(?st = schema:CompletedActionStatus, 'done', if(?st = schema:FailedActionStatus, 'rejected', if(?st = schema:ActiveActionStatus, 'in progress', 'open'))) as ?st_label) bind(if(?outside, concat(?st_label, ' (set outside this space)'), ?st_label) as ?status) optional { { select ?suggestion (max(concat(if(?afm,'1','0'), ?ad, ' ', str(?ag))) as ?apick) where { service <https://w3id.org/np/l/nanopub-query-1.1/repo/spaces> { select (group_concat(?mpk; separator=' ') as ?memberPubkeys) where { graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?stateG . } values ?_resource_multi_iri {} graph ?stateG { ?_resource_multi_iri npa:isMaintainedBy? ?space . ?ri a gen:RoleInstantiation ; npa:forSpace ?space ; npa:forAgent ?agent ; npa:hasRoleType ?rt . filter(?rt in (gen:AdminRole, gen:MaintainerRole, gen:MemberRole)) ?acct a npa:AccountState ; npa:agent ?agent ; npa:pubkey ?mpk . } } } graph npa:graph { ?anp npa:hasValidSignatureForPublicKeyHash ?apk ; np:hasAssertion ?aa ; dct:created ?adate . filter not exists { ?anpi npx:invalidates ?anp ; npa:hasValidSignatureForPublicKeyHash ?apk . } } graph ?aa { ?suggestion schema:agent ?ag . } bind(str(?adate) as ?ad) bind(contains(?memberPubkeys, ?apk) as ?afm) } group by ?suggestion } bind(iri(strafter(?apick, ' ')) as ?assignee) } # The assignment nanopub that currently wins, so "assign..." can seed its form from it. # "use" fill mode: the form then arrives pre-filled with ALL current assignees, # whatever their number. Falls back to the declaring nanopub, because a raw-key # (@) mapping with an empty value hides the button entirely. optional { { select ?suggestion (max(concat(if(?nfm,'1','0'), ?nd, ' ', str(?anp2))) as ?npick) where { service <https://w3id.org/np/l/nanopub-query-1.1/repo/spaces> { select (group_concat(?mpk; separator=' ') as ?memberPubkeys) where { graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?stateG . } values ?_resource_multi_iri {} graph ?stateG { ?_resource_multi_iri npa:isMaintainedBy? ?space . ?ri a gen:RoleInstantiation ; npa:forSpace ?space ; npa:forAgent ?agent ; npa:hasRoleType ?rt . filter(?rt in (gen:AdminRole, gen:MaintainerRole, gen:MemberRole)) ?acct a npa:AccountState ; npa:agent ?agent ; npa:pubkey ?mpk . } } } graph npa:graph { ?anp2 npa:hasValidSignatureForPublicKeyHash ?npk ; np:hasAssertion ?aa2 ; dct:created ?ndate . filter not exists { ?anp2i npx:invalidates ?anp2 ; npa:hasValidSignatureForPublicKeyHash ?npk . } } graph ?aa2 { ?suggestion schema:agent ?ag2 . } bind(str(?ndate) as ?nd) bind(contains(?memberPubkeys, ?npk) as ?nfm) } group by ?suggestion } bind(iri(strafter(?npick, ' ')) as ?assignNp) } bind(coalesce(?assignNp, ?np) as ?fill_source) optional { { select ?suggestion (count(distinct ?cnp) as ?ccount) where { graph npa:graph { ?cnp npa:hasValidSignatureForPublicKeyHash ?cpk ; np:hasAssertion ?ca . filter not exists { ?cnpi npx:invalidates ?cnp ; npa:hasValidSignatureForPublicKeyHash ?cpk . } } graph ?ca { ?c a schema:Statement ; rdf:value ?ctext . } ?c as:inReplyTo+ ?suggestion . } group by ?suggestion } filter(?ccount > 0) bind(?suggestion as ?comments_multi_iri) bind(concat(str(?ccount), if(?ccount = 1, ' comment', ' comments')) as ?comments_label_multi) } optional { { select ?reporter (min(?rn) as ?reporter_label) where { ?reporter foaf:name ?rn } group by ?reporter } } optional { { select ?assignee (min(?an) as ?assignee_label) where { ?assignee foaf:name ?an } group by ?assignee } } bind(?suggestion as ?item_multi_iri) bind(?title as ?item_label_multi) bind(coalesce(lcase(strafter(str(?k), 'RA5BAdUvlxLWMWFQN3UVKoIQEB_MYTiAoLH1klXJ7z-XI/')), '') as ?kind) bind(if(?st in (schema:CompletedActionStatus, schema:FailedActionStatus), '2', '1') as ?openRank) } order by ?openRank desc(?date) https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/provenance https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/assertion http://www.w3.org/ns/prov#wasAttributedTo https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/pubinfo https://orcid.org/0000-0002-1267-0234 http://xmlns.com/foaf/0.1/name Tobias Kuhn https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE http://purl.org/dc/terms/created 2026-08-27T07:37:23Z https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE http://purl.org/dc/terms/creator https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE http://purl.org/dc/terms/license https://creativecommons.org/licenses/by/4.0/ https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE http://purl.org/nanopub/x/embeds https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/get-nanosuggestions https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE http://purl.org/nanopub/x/supersedes https://w3id.org/np/RATn_fac54wP1UOyThzg-sPQA7N5q2miWhBPHumUJ6VPc https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE http://www.w3.org/2000/01/rdf-schema#label Get nanosuggestions for a resource https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE https://w3id.org/np/o/ntemplate/wasCreatedFromProvenanceTemplate https://w3id.org/np/RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RA0J4vUn_dekg-U1kK3AOEt02p9mT2WO03uGxLDec1jLw https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RAoTD7udB2KtUuOuAe74tJi1t3VzK0DyWS7rYVAq1GRvw https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE https://w3id.org/np/o/ntemplate/wasCreatedFromTemplate https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/sig http://purl.org/nanopub/x/hasAlgorithm RSA https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/sig http://purl.org/nanopub/x/hasPublicKey MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/sig http://purl.org/nanopub/x/hasSignature HHS/q5eM1twcOrfKoaCY0yOTtB8U83RExzilzS6NcZ94kNX7JKDs0//jFAzoexdrelxfmIYHsJtAy8Ahau3JsncEzzk31MrCLy8AGL6KBXFu51Q9dVqG5+qD1z5fFu1U6vVowwfCMMGFs9LVZB8t0RoN1QGdB1DqCWMF1xe9mrg= https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/sig http://purl.org/nanopub/x/hasSignatureTarget https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE https://w3id.org/np/RAXLyQFTqT9TBlnkhDR38Hld_M-2WTEGfiZq5BzpWHqQE/sig http://purl.org/nanopub/x/signedBy https://orcid.org/0000-0002-1267-0234