https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/Head https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs http://www.nanopub.org/nschema#hasAssertion https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/assertion https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs http://www.nanopub.org/nschema#hasProvenance https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/provenance https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs http://www.nanopub.org/nschema#hasPublicationInfo https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/pubinfo https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.nanopub.org/nschema#Nanopublication https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/assertion https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/get-view-displays http://purl.org/dc/terms/description Returns the views to display for a given resource: both standalone view displays and the views contributed by assigned presets (issue #302), unioned and ordered by date so latest-wins override resolution holds across both. Filtered server-side to declarations signed by an admin or maintainer of the owning space, or by the affected user themselves (for an agent's own page). Each referenced view is resolved to its latest version by following the npx:supersedes chain: among the version tree's current heads (nanopubs that are themselves neither superseded nor validly retracted via npx:invalidates), the most recent is chosen, so ?view is the latest non-retracted view definition (no separate latest-version lookup needed by the client). Choosing a current head rather than the max-timestamp node makes resolution robust to backdated supersedes and to retracted versions. Preset-derived rows have an unbound ?display and carry the resolved ?view plus the assignment's activation mode. The view-version resolution is wrapped in a run-once sub-SELECT so the cross-repo lookup is evaluated once for the whole view set rather than once per referenced view. Space-governed versions (gen:governedBy, nanodash docs/views-and-presets-as-maintained-resources.md): a referenced version declaring gen:governedBy resolves to the newest version of its (kind, space) pair signed by a current member+ (admin/maintainer/member) of that space -- with the kind validated as a maintained resource of the space -- taking precedence over the supersedes-based head; without a valid governed candidate the pinned version stands. https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/get-view-displays http://purl.org/dc/terms/license http://www.apache.org/licenses/LICENSE-2.0 https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/get-view-displays http://www.w3.org/1999/02/22-rdf-syntax-ns#type https://w3id.org/kpxl/grlc/grlc-query https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/get-view-displays http://www.w3.org/2000/01/rdf-schema#label Get view displays https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/get-view-displays https://w3id.org/kpxl/grlc/endpoint https://w3id.org/np/l/nanopub-query-1.1/repo/type/11daee46fdfff957dc17b46f5dc1a618045afd4f5634d5334ce9db19c3689a3c https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/get-view-displays 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 ?display ?view (coalesce(?viewKindOptional, ?view) as ?viewKind) ?label ?displayType ?displayMode ?np ?pubkey ?date 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 . } { # Authority gate (issue #130 / nanodash#510): a single mandatory hop through the # governing space ref, which covers both a maintained resource and a space itself # (the reflexive self-edge), keyed on the role tier materialized on the # RoleInstantiation since #125. Replaces the old bare-IRI isMaintainedBy? hop and the # dead RoleDeclaration maintainer join. Non-ref variant: any ref claiming the IRI, so # authority merges across refs (the ref variant pins a single ?passedRef instead). graph ?stateG { ?_resource_multi_iri npa:hasGoverningSpaceRef ?spaceRef . ?ri a gen:RoleInstantiation ; npa:forSpaceRef ?spaceRef ; npa:hasRoleType ?roleType ; npa:forAgent ?authAgent . filter(?roleType = gen:AdminRole || ?roleType = gen:MaintainerRole) ?authAcct a npa:AccountState ; npa:agent ?authAgent ; npa:pubkey ?pubkey . } } union { graph ?stateG { ?selfAcct a npa:AccountState ; npa:agent ?_resource_multi_iri ; npa:pubkey ?pubkey . } } } { # branch (a): standalone view displays — LOCAL pattern on the endpoint repo graph npa:graph { ?np npx:hasNanopubType gen:ViewDisplay . ?np npa:hasValidSignatureForPublicKeyHash ?pubkey . filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . } ?np dct:created ?date . ?np npx:embeds ?display . ?np np:hasAssertion ?a . optional { ?np rdfs:label ?label } } graph ?a { ?display gen:isDisplayOfView ?refView . ?display gen:isDisplayFor ?_resource_multi_iri . optional { values ?displayType { gen:PartLevelViewDisplay gen:TopLevelViewDisplay } ?display a ?displayType . } optional { values ?displayMode { gen:ActivatedViewDisplay gen:DeactivatedViewDisplay } ?display a ?displayMode . } } } union { # branch (b): preset-supplied views — wrapped in a sub-SELECT so the remote # service does not collapse branch (a). ?display stays unbound. select ?refView ?label ?displayType ?displayMode ?np ?pubkey ?date ?_resource_multi_iri { service <https://w3id.org/np/l/nanopub-query-1.1/repo/full> { graph npa:graph { ?np npx:hasNanopubType gen:PresetAssignment . ?np npa:hasValidSignatureForPublicKeyHash ?pubkey . filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . } ?np dct:created ?date . ?np npx:embeds ?assignment . ?np np:hasAssertion ?a . optional { ?np rdfs:label ?label } } graph ?a { ?assignment gen:isAssignmentFor ?_resource_multi_iri . ?assignment gen:isAssignmentOfPreset ?presetRef . optional { values ?displayMode { gen:ActivatedPresetAssignment gen:DeactivatedPresetAssignment } ?assignment a ?displayMode . } } graph npa:graph { ?presetNp npx:embeds ?presetRef ; np:hasAssertion ?pa . } graph ?pa { ?presetRef a gen:Preset . { ?presetRef gen:hasTopLevelView ?refView . bind(gen:TopLevelViewDisplay as ?displayType) } union { ?presetRef gen:hasView ?refView . bind(gen:PartLevelViewDisplay as ?displayType) } } } } } # Resolve each referenced view to its latest version: the current head of its # supersedes version tree (a nanopub itself neither superseded nor validly # retracted via npx:invalidates), most recent among heads on a fork. Wrapped in # a run-once sub-SELECT so this cross-repo service is evaluated once for the # whole view set rather than once per referenced view -- the per-view federation # round-trips were the dominant cost of earlier versions. optional { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/ec6722efa3b44e0a18aa63afe5964158a1fdb7f0413ea5f23bfddf5c03ca0221> { select distinct ?refView ?latestView ?viewKindOptional ?pinKind ?pinSpace where { graph npa:graph { ?rnp npx:embeds ?refView ; np:hasAssertion ?ra . } graph ?ra { ?refView a gen:ResourceView . } optional { graph ?ra { ?refView dct:isVersionOf ?pinKind ; gen:governedBy ?pinSpace . } } optional { ?vnp npx:embeds ?refView . ?latestNp (npx:supersedes|^npx:supersedes)* ?vnp ; dct:created ?ldate ; npx:embeds ?latestView ; np:hasAssertion ?va ; npa:hasValidSignatureForPublicKeyHash ?invPk . filter not exists { ?supNp npx:supersedes ?latestNp . } filter not exists { ?invNp npx:invalidates ?latestNp ; npa:hasValidSignatureForPublicKeyHash ?invPk . } filter not exists { ?other (npx:supersedes|^npx:supersedes)* ?vnp ; dct:created ?odate ; npa:hasValidSignatureForPublicKeyHash ?invPk2 . filter not exists { ?supNp2 npx:supersedes ?other . } filter not exists { ?invNp2 npx:invalidates ?other ; npa:hasValidSignatureForPublicKeyHash ?invPk2 . } filter(?odate > ?ldate) } graph ?va { ?latestView a gen:ResourceView . optional { ?latestView dct:isVersionOf ?viewKindOptional . } } } } } } # Space-governed resolution (gen:governedBy; nanodash docs/views-and-presets-as- # maintained-resources.md): a pinned version declaring a governing space resolves to # the newest member+-signed version of its (kind, space) pair instead of the # supersedes head; no valid candidate -> the pin stands. optional { { select ?pinKind ?pinSpace (iri(strafter(max(concat(str(?cDate), ">", str(?cver))), ">")) as ?governedLatest) where { service <https://w3id.org/np/l/nanopub-query-1.1/repo/type/ec6722efa3b44e0a18aa63afe5964158a1fdb7f0413ea5f23bfddf5c03ca0221> { graph npa:graph { ?cnp dct:created ?cDate ; npa:hasValidSignatureForPublicKeyHash ?cpk ; npx:embeds ?cver ; np:hasAssertion ?ca . filter not exists { ?ci npx:invalidates ?cnp ; npa:hasValidSignatureForPublicKeyHash ?cpk . } } graph ?ca { ?cver dct:isVersionOf ?pinKind ; gen:governedBy ?pinSpace . } } service <https://w3id.org/np/l/nanopub-query-1.1/repo/spaces> { graph npa:graph { <http://purl.org/nanopub/admin/thisRepo> npa:hasCurrentSpaceState ?gsg . } graph ?gsg { ?pinKind npa:isMaintainedBy ?pinSpace ; npa:hasGoverningSpaceRef ?gref . ?gri a gen:RoleInstantiation ; npa:forSpace ?pinSpace ; npa:forSpaceRef ?gref ; npa:hasRoleType ?gtier ; npa:forAgent ?gag . filter(?gtier = gen:AdminRole || ?gtier = gen:MaintainerRole || ?gtier = gen:MemberRole) ?gacct a npa:AccountState ; npa:agent ?gag ; npa:pubkey ?cpk . } } } group by ?pinKind ?pinSpace } } bind(if(bound(?pinSpace), coalesce(?governedLatest, ?refView), coalesce(?latestView, ?refView)) as ?view) } order by desc(?date) https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/provenance https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/assertion http://www.w3.org/ns/prov#wasAttributedTo https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/pubinfo https://orcid.org/0000-0002-1267-0234 http://xmlns.com/foaf/0.1/name Tobias Kuhn https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs http://purl.org/dc/terms/created 2026-07-03T13:00:55Z https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs http://purl.org/dc/terms/creator https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs http://purl.org/dc/terms/license https://creativecommons.org/licenses/by/4.0/ https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs http://purl.org/nanopub/x/embeds https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/get-view-displays https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs http://purl.org/nanopub/x/supersedes https://w3id.org/np/RA4TGV_zGtvVPjvffGF6OTbNV-ZmjwIdcZ3-JNYdEhpoE https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs http://www.w3.org/2000/01/rdf-schema#label Get view displays https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs https://w3id.org/np/o/ntemplate/wasCreatedFromProvenanceTemplate https://w3id.org/np/RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RA0J4vUn_dekg-U1kK3AOEt02p9mT2WO03uGxLDec1jLw https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RAoTD7udB2KtUuOuAe74tJi1t3VzK0DyWS7rYVAq1GRvw https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs https://w3id.org/np/o/ntemplate/wasCreatedFromTemplate https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/sig http://purl.org/nanopub/x/hasAlgorithm RSA https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/sig http://purl.org/nanopub/x/hasPublicKey MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/sig http://purl.org/nanopub/x/hasSignature Q4iHSBUOkdyNeJ78m5Y8Zm6yH371nQZD9v87JzFnl4ZQ8d/9doM+imxJ5uuOE6jZM2rgocvl2Nc+02N5wI0IwfXbsQazl3L+J38XNXJ48+DKEiZhC8Bc92VTvfuXd8MlXPU5gNgsxFSBCCp7JDFTYOMTfIbyGjg1etWo6rEYJ4I= https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/sig http://purl.org/nanopub/x/hasSignatureTarget https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs https://w3id.org/np/RArKslem_skNR9Q9qEpHhIQbJdP47PxDojp40Z5r11Ubs/sig http://purl.org/nanopub/x/signedBy https://orcid.org/0000-0002-1267-0234