https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/Head https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI http://www.nanopub.org/nschema#hasAssertion https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/assertion https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI http://www.nanopub.org/nschema#hasProvenance https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/provenance https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI http://www.nanopub.org/nschema#hasPublicationInfo https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/pubinfo https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.nanopub.org/nschema#Nanopublication https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/assertion https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/list-preset-assignments http://purl.org/dc/terms/description Lists the currently active presets assigned to a resource, for the About page, filtered to assignments signed by an admin or maintainer of the owning space, or by the affected user themselves. An assignment is identified by the assigned preset's stable KIND (dct:isVersionOf) and the resource, mirroring view displays, which the client dedups by view kind (nanodash issue #607): among the assignments of one preset kind for one resource only the latest by dct:created counts, so assigning another version of the same preset replaces the earlier assignment instead of adding a second, competing row; a version declaring no kind keys on itself, and the preset listed is the version that assignment pinned. Deactivated assignments (and assignments with a newer one for the same pair) are excluded. Shows each assigned preset, who added it, the date, and the source nanopub. The deactivatePreset column feeds the per-row deactivate action. The update columns surface a newer version of the assigned preset (update_noheader is the notice, update_label its tooltip, updatePreset the version the update action pre-fills): the newest non-invalidated version of the same kind, restricted to versions published by the same agent as the assigned version, so an unrelated agent cannot advertise a version of someone else's preset here. Presets never auto-update -- adopting the newer version stays an explicit, admin-signed act. https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/list-preset-assignments http://purl.org/dc/terms/license http://www.apache.org/licenses/LICENSE-2.0 https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/list-preset-assignments http://www.w3.org/1999/02/22-rdf-syntax-ns#type https://w3id.org/kpxl/grlc/grlc-query https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/list-preset-assignments http://www.w3.org/2000/01/rdf-schema#label List preset assignments https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/list-preset-assignments https://w3id.org/kpxl/grlc/endpoint https://w3id.org/np/l/nanopub-query-1.1/repo/full https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/list-preset-assignments https://w3id.org/kpxl/grlc/sparql prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix dct: <http://purl.org/dc/terms/> prefix np: <http://www.nanopub.org/nschema#> prefix npa: <http://purl.org/nanopub/admin/> prefix npx: <http://purl.org/nanopub/x/> prefix gen: <https://w3id.org/kpxl/gen/terms/> select distinct ?preset ?preset_label (str(?preset) as ?deactivatePreset) (?user as ?added_by) (?date as ?date_added) ?update_noheader ?update_label ?updatePreset ?np ("^" as ?np_label) where { values ?_resource_multi_iri {} service <https://w3id.org/np/l/nanopub-query-1.1/repo/spaces> { graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?stateG . } { graph ?stateG { ?_resource_multi_iri npa:isMaintainedBy? ?space . ?ri a gen:RoleInstantiation ; npa:forSpace ?space ; npa:forAgent ?authAgent ; (npa:inverseProperty|npa:regularProperty) ?roleProp . ?authAcct a npa:AccountState ; npa:agent ?authAgent ; npa:pubkey ?pubkey . } optional { graph npa:spacesGraph { ?rd a npa:RoleDeclaration ; npa:forSpace ?space ; npa:hasRoleType gen:MaintainerRole ; (npa:inverseProperty|npa:regularProperty) ?roleProp . bind(true as ?isMaintainer) } } filter(?roleProp = gen:hasAdmin || bound(?isMaintainer)) } union { graph ?stateG { ?selfAcct a npa:AccountState ; npa:agent ?_resource_multi_iri ; npa:pubkey ?pubkey . } } } graph npa:graph { ?np npx:hasNanopubType gen:PresetAssignment ; npa:hasValidSignatureForPublicKeyHash ?pubkey ; dct:created ?date ; npx:embeds ?assignment ; np:hasAssertion ?a . filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . } optional { ?np npx:signedBy ?user } } graph ?a { ?assignment gen:isAssignmentFor ?_resource_multi_iri ; gen:isAssignmentOfPreset ?preset . optional { values ?mode { gen:ActivatedPresetAssignment gen:DeactivatedPresetAssignment } ?assignment a ?mode . } } # The assigned preset version: its label, its stable kind, its author and its date. optional { graph npa:graph { ?presetNp npx:embeds ?preset ; np:hasAssertion ?pa . optional { ?presetNp npx:signedBy ?presetSigner } optional { ?presetNp dct:created ?presetDate } } graph ?pa { optional { ?preset rdfs:label ?preset_label . } optional { ?preset dct:isVersionOf ?presetKindOptional . } } } # Assignment identity is (preset KIND, resource) -- as for view displays, where the # client dedups by view kind -- so assigning another version of the same preset # replaces the earlier assignment instead of adding a second, competing one. A # version that declares no kind keys on itself. bind(coalesce(?presetKindOptional, ?preset) as ?presetKey) filter(!bound(?mode) || !contains(str(?mode), "Deactivated")) filter not exists { graph npa:graph { ?np2 npx:hasNanopubType gen:PresetAssignment ; npa:hasValidSignatureForPublicKeyHash ?pubkey2 ; dct:created ?date2 ; npx:embeds ?assignment2 ; np:hasAssertion ?a2 . filter not exists { ?npx2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pubkey2 . } } graph ?a2 { ?assignment2 gen:isAssignmentFor ?_resource_multi_iri ; gen:isAssignmentOfPreset ?preset2 . } optional { graph npa:graph { ?presetNp2 npx:embeds ?preset2 ; np:hasAssertion ?pa2 . } graph ?pa2 { ?preset2 dct:isVersionOf ?presetKind2 . } } filter(coalesce(?presetKind2, ?preset2) = ?presetKey) filter(?date2 > ?date || (?date2 = ?date && str(?np2) > str(?np))) } # Newest version of the assigned preset's kind, restricted to versions published by # the same agent as the assigned version, so an unrelated agent cannot advertise a # version of someone else's preset here (issue #607). Presets never auto-update: # this only surfaces the newer version and pre-fills the update action with it. optional { { select (?versionKind as ?presetKey) (?versionSigner as ?presetSigner) (iri(strafter(max(concat(str(?vDate), ">", str(?vPreset))), ">")) as ?latestVersion) (max(?vDate) as ?latestDate) where { graph npa:graph { ?vNp npx:hasNanopubType gen:Preset ; npa:hasValidSignatureForPublicKeyHash ?vPubkey ; dct:created ?vDate ; npx:signedBy ?versionSigner ; npx:embeds ?vPreset ; np:hasAssertion ?vA . filter not exists { ?vInv npx:invalidates ?vNp ; npa:hasValidSignatureForPublicKeyHash ?vPubkey . } } graph ?vA { ?vPreset a gen:Preset ; dct:isVersionOf ?versionKind . } } group by ?versionKind ?versionSigner } } bind(bound(?latestVersion) && ?latestVersion != ?preset && ?latestDate > ?presetDate as ?hasUpdate) bind(if(?hasUpdate, "⬆️ newer version available", "") as ?update_noheader) bind(if(?hasUpdate, concat("Version of ", substr(str(?latestDate), 1, 10), " is newer than the assigned one"), "") as ?update_label) bind(if(?hasUpdate, str(?latestVersion), "") as ?updatePreset) } order by desc(?date) https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/provenance https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/assertion http://www.w3.org/ns/prov#wasAttributedTo https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/pubinfo https://orcid.org/0000-0002-1267-0234 http://xmlns.com/foaf/0.1/name Tobias Kuhn https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI http://purl.org/dc/terms/created 2026-09-09T06:25:15Z https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI http://purl.org/dc/terms/creator https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI http://purl.org/dc/terms/license https://creativecommons.org/licenses/by/4.0/ https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI http://purl.org/nanopub/x/embeds https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/list-preset-assignments https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI http://purl.org/nanopub/x/supersedes https://w3id.org/np/RAZYHKDeAsHTPN5IsXNKa0rZwmhiWklXcnxOU7IBS4vtk https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI http://www.w3.org/2000/01/rdf-schema#label List preset assignments https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI https://w3id.org/np/o/ntemplate/wasCreatedFromProvenanceTemplate https://w3id.org/np/RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RA0J4vUn_dekg-U1kK3AOEt02p9mT2WO03uGxLDec1jLw https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RAoTD7udB2KtUuOuAe74tJi1t3VzK0DyWS7rYVAq1GRvw https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI https://w3id.org/np/o/ntemplate/wasCreatedFromTemplate https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/sig http://purl.org/nanopub/x/hasAlgorithm RSA https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/sig http://purl.org/nanopub/x/hasPublicKey MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/sig http://purl.org/nanopub/x/hasSignature jfGyjnTWaKBVoS+6qO3Dw/66Cmb26VeeHyIHxyIijl8lEe9hfhz+HDgKBfZid8H9lVI2O57chy8KUjoybGeBd1FoaR0kgMDRxNHm+HrkNnVoU9CKMVWmgieXy0cjFR1DodOQ7sHgXzImdRBNoYZ4+9dt48RZp4zShx43FCrole0= https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/sig http://purl.org/nanopub/x/hasSignatureTarget https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI https://w3id.org/np/RA6yOUA1c8dDWgBdI-Cl8wnXIiXjwpUnr_lbAUPXleixI/sig http://purl.org/nanopub/x/signedBy https://orcid.org/0000-0002-1267-0234