@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:Space; schema:title "Roles and members"; gen:hasContent """

Everyone else in a space holds a role. Roles come in three tiers below admin: maintainer, member and observer. The tiers form a ladder — each may grant roles below its own. An admin may grant any role, a maintainer may grant member and observer roles, a member may grant observer roles. Observer is the one role people may take for themselves, by declaring their interest in a space.

Which roles exist in a space is up to its admins, who attach role definitions such as \"team member\" or \"helper\" to it. A role definition says which tier it belongs to and which statement expresses the grant. Granting is then a single nanopublication: this space has this person in this role.

"""; gen:hasPositionString "040" . } sub:provenance { sub:assertion prov:wasAttributedTo . } sub:pubinfo { this: dct:created "2026-09-10T11:21:27Z"^^xsd:dateTime; dct:creator ; dct:license ; npx:introduces sub:paragraph; rdfs:label "Roles and members"; 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 "ANMZYGHKugW3+6UYiWybA9QKHIWT2jgM+Bk+09TRCltg6CgOaJJvPXgNPBrqeedwdEvAmIV44NaxznOTgZMNLiJQOVuOWCXo+p27fJWa6TtATnd4R4yhCpk5wm3s3DPkYNm/bgIYWz3TICauC018GW5XrD8YvSrmIgpmiiH+5dP/eAiquhP5BsqoyfscAmX5YhZ1gfU5ZuVwsU49zKeeWcTCNfJL8MGdgD060vwL9X/H4cZ7vXRKvZkH8wKe+D4st6pEli8VmZgxgBtWBGJdpuf+J4PSMzEtipFexcOwvKt9Km9wAP8F1N8H21kAX1I3qquGOtP8ujfxMm4yZwO9Nw=="; npx:hasSignatureTarget this:; npx:signedBy . }