@prefix this: . @prefix sub: . @prefix schema: . @prefix gen: . @prefix np: . @prefix dct: . @prefix nt: . @prefix npx: . @prefix xsd: . @prefix rdfs: . @prefix prov: . sub:Head { this: a np:Nanopublication; np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo . } sub:assertion { sub:paragraph a gen:Paragraph; schema:about gen:SpaceMemberRole; schema:title "Attaching a role to a space"; gen:hasContent """

A defined role does nothing until a space adopts it. An admin attaches it with a single statement, gen:hasRole, and from then on it can be granted in that space and appears in the space's role listings. Roles can also arrive bundled in a preset, together with the views a space uses.

An admin can detach a role again with gen:detachedRole. The newer of the two statements wins, and detaching removes the role's availability along with every grant that depended on it.

"""; gen:hasPositionString "030" . } sub:provenance { sub:assertion prov:wasAttributedTo . } sub:pubinfo { this: dct:created "2026-09-10T11:36:12Z"^^xsd:dateTime; dct:creator ; dct:license ; npx:introduces sub:paragraph; rdfs:label "Attaching a role to a space"; nt:wasCreatedFromProvenanceTemplate ; nt:wasCreatedFromPubinfoTemplate , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl8cMusqtNyKA6UIsi3f7BAcZmHQXWxU0qk0PLsboMWQxYrGBfGgHTgRHJrBRxL+Zn9kJHKVmz2smDcjCBptXi/OwWy80gjsx+Pbe6IWz3zFPWF1UoFIKfPnC0slV67CQgdM853zW7Bmk9/uflCtK4EtZKmPdRGtUHVC7DTVvDBMDzLRGdE2KCBVN29EbM5GGVNvijYbaZQ9OFQPBkQshayqSIyGRr6rreJdkrRVLIzu3uuAjKYydaeXZWSN2JLnVBwrClKUxaEdCwhb5nXpMtKOMD+R+LgaXLeJUWM8BdRSYnta9ZqI5pHY4y3v+eW7J+HHeTvRbHvlik+Z4hFUXmQIDAQAB"; npx:hasSignature "FT9NajMCKLYGgTnYzct1mf21C5YPODYuLbrOPnMEpISjd3qZSgefEAe5RNoIQGSYAix0djRXlGnEgEUy9bbGHBeviGADLmICDQmXOzkr0hA7WagIjeYRYdBY6FMxp7rMLIR7xM2+EOubJxvGzG5FBenetpecJv9BYuEkpT+QKFvkx0/SRMjdBsGt+LS8z0wQwV3TJZ3+oSksJqV5urrO6tCTfF/2gB+nJlFCC3ukd3WhegnmMrhxQ9paqOD5p/d390affEuG/RM0DCzkd3ORnAOunioj55SsdZJygJxBYVTKcCKcYPcu69fhLz8fPDAuWNp1MdUc7otuc8eIwfalvA=="; npx:hasSignatureTarget this:; npx:signedBy . }