. . . . "Lists the assertion templates governed by a given space. First, the template kinds whose versions declare gen:governedBy the space but which the space does not list as maintained resources yet: they are marked as not listed yet and carry the kind IRI, label and description that an admin needs to list them as maintained resources (register_* columns, empty on listed rows). Then the kinds listed as maintained resources of the space. Each row shows the label of the kind's current version and links to that version's nanopublication. For a listed kind the current version is the newest non-invalidated version signed by a current member+ (admin/maintainer/member) of the governing space ref, mirroring the get-latest-governed-version resolver; for a kind not listed yet it is the newest non-invalidated version signed by a current member+ of the space. The federated lookup for the kinds not listed yet gathers the member keys and the listed kinds into a single row, so it runs once. Kinds without such a version do not appear. Ordered by status, then alphabetically by label." . . . "List maintained templates of a space" . . "prefix rdfs: \nprefix dct: \nprefix np: \nprefix npa: \nprefix npx: \nprefix nt: \nprefix gen: \n\nselect ?resource ?resource_label ?status ?register_kind ?register_label ?register_description ?np (\"^\" as ?np_label) where {\n {\n select ?resource ?registered ?np (coalesce(min(if(lang(?label) = \"\", ?label, ?nolabel)), min(?label)) as ?resource_label) (coalesce(min(if(lang(?desc) = \"\", ?desc, ?nodesc)), min(?desc)) as ?description) where {\n {\n select ?resource ?registered (max(concat(str(?gDate), \">\", str(?gNp))) as ?maxW) where {\n {\n # Kinds listed as maintained resources of the space: newest version signed by a\n # current member+ of the governing space ref (as in get-latest-governed-version).\n values ?_space_multi_iri {}\n graph npa:graph {\n ?gNp npa:hasValidSignatureForPublicKeyHash ?gPubkeyhash ;\n dct:created ?gDate ;\n npx:embeds ?gVersion ;\n np:hasAssertion ?gA .\n filter not exists { ?gInv npx:invalidates ?gNp ; npa:hasValidSignatureForPublicKeyHash ?gPubkeyhash . }\n }\n graph ?gA { ?gVersion a nt:AssertionTemplate ; dct:isVersionOf ?resource ; gen:governedBy ?_space_multi_iri . }\n service {\n graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?stateG . }\n graph ?stateG {\n ?resource npa:isMaintainedBy ?_space_multi_iri ; npa:hasGoverningSpaceRef ?gRef .\n ?gRi a gen:RoleInstantiation ; npa:forSpace ?_space_multi_iri ; npa:forSpaceRef ?gRef ;\n npa:hasRoleType ?gTier ; npa:forAgent ?gAgent .\n filter(?gTier = gen:AdminRole || ?gTier = gen:MaintainerRole || ?gTier = gen:MemberRole)\n ?gAcct a npa:AccountState ; npa:agent ?gAgent ; npa:pubkey ?gPubkeyhash .\n }\n }\n bind(true as ?registered)\n } union {\n # Kinds whose versions declare gen:governedBy the space but which the space has not\n # listed as maintained resources yet: newest version signed by a current member+ of the space. The member keys\n # and listed kinds are gathered into one row, so the federated call runs once.\n {\n select (concat(\" \", group_concat(distinct str(?uKey); separator=\" \"), \" \") as ?uKeys)\n (concat(\" \", group_concat(distinct str(?uKind); separator=\" \"), \" \") as ?uKinds) where {\n values ?_space_multi_iri {}\n service {\n graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?uState . }\n graph ?uState {\n ?uRi a gen:RoleInstantiation ; npa:forSpace ?_space_multi_iri ; npa:hasRoleType ?uTier ; npa:forAgent ?uAgent .\n filter(?uTier = gen:AdminRole || ?uTier = gen:MaintainerRole || ?uTier = gen:MemberRole)\n ?uAcct a npa:AccountState ; npa:agent ?uAgent ; npa:pubkey ?uKey .\n }\n optional { graph ?uState { ?uKind npa:isMaintainedBy ?_space_multi_iri . } }\n }\n }\n }\n values ?_space_multi_iri {}\n graph npa:graph {\n ?gNp npa:hasValidSignatureForPublicKeyHash ?gPubkeyhash ;\n dct:created ?gDate ;\n npx:embeds ?gVersion ;\n np:hasAssertion ?gA .\n filter not exists { ?gInv npx:invalidates ?gNp ; npa:hasValidSignatureForPublicKeyHash ?gPubkeyhash . }\n }\n graph ?gA { ?gVersion a nt:AssertionTemplate ; dct:isVersionOf ?resource ; gen:governedBy ?_space_multi_iri . }\n filter(contains(?uKeys, concat(\" \", str(?gPubkeyhash), \" \")))\n filter(!contains(?uKinds, concat(\" \", str(?resource), \" \")))\n bind(false as ?registered)\n }\n } group by ?resource ?registered\n }\n graph npa:graph {\n ?np npa:hasValidSignatureForPublicKeyHash ?pubkeyhash ;\n dct:created ?date ;\n npx:embeds ?version ;\n np:hasAssertion ?a .\n }\n filter(concat(str(?date), \">\", str(?np)) = ?maxW)\n graph ?a { ?version a nt:AssertionTemplate ; dct:isVersionOf ?resource . }\n optional { graph ?a { ?version rdfs:label ?label } }\n optional { graph ?a { ?version dct:description ?desc } }\n } group by ?resource ?registered ?np\n }\n # The register_* columns are empty on listed rows, which hides the list action there.\n bind(if(?registered, \"\", \"⏳ not listed yet\") as ?status)\n bind(if(?registered, \"\", str(?resource)) as ?register_kind)\n bind(if(?registered, \"\", ?resource_label) as ?register_label)\n bind(if(?registered, \"\", coalesce(?description, ?resource_label)) as ?register_description)\n} order by ?registered lcase(str(?resource_label))" . . "Tobias Kuhn" . "2026-09-25T14:29:19Z"^^ . . . . . "List maintained templates of a space" . "Dropped the register_type column: the new listing template fixes the resource type to nt:AssertionTemplate, so the constant column is no longer needed as action data." . . . . . . . "RSA" . "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB" . "hDVmT/V++2VgLiZAmMLUTIdoSzngjWhW9ao/6vVWsV8agvuupufr9c6OTmiPzp3KkIuCX07sLQRE9yXNHliyuA645PbiPN5JsDXrKeUcOchB2Wvq0A++E//TFS+p6h9wyrhUpw6TiEmD4AOW1SKRIJEuntAhDns/TvDFo1Fk5hE=" . . .