https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/Head
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok
http://www.nanopub.org/nschema#hasAssertion
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/assertion
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok
http://www.nanopub.org/nschema#hasProvenance
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/provenance
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok
http://www.nanopub.org/nschema#hasPublicationInfo
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/pubinfo
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.nanopub.org/nschema#Nanopublication
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/assertion
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/list-space-members
http://purl.org/dc/terms/description
Lists the members of a given space ref (space IRI + root definition) together with their highest role tier (admin, maintainer, or member, in that order) and links to the role-assignment nanopubs (labelled by the specific role name, preferring schema:name). Observer-tier roles are excluded. The tier of each membership is resolved ONLY through a role that the space's own admins authoritatively assigned to it (a gen:RoleAssignment with npa:forSpace this space and gen:hasRole), matched to the instantiation by predicate; role declarations from other spaces that merely reuse the same predicate are ignored. This fixes a bug where a predicate (e.g. gen:hasTeamMember) declared with a different tier in another space leaked into this space's member listing. When the same role is assigned to the same person by multiple nanopubs, only the latest one is linked. Pass the ref's root nanopub (root_np); the query resolves the ref via npa:rootNanopub and scopes the role instantiations by npa:forSpaceRef. Ref-scoped variant of list-space-members (which is IRI-keyed via npa:forSpace).
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/list-space-members
http://purl.org/dc/terms/license
http://www.apache.org/licenses/LICENSE-2.0
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/list-space-members
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
https://w3id.org/kpxl/grlc/grlc-query
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/list-space-members
http://www.w3.org/2000/01/rdf-schema#label
List space members (ref-scoped)
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/list-space-members
https://w3id.org/kpxl/grlc/endpoint
https://w3id.org/np/l/nanopub-query-1.1/repo/spaces
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/list-space-members
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 gen: <https://w3id.org/kpxl/gen/terms/>
prefix schema: <http://schema.org/>
select ?member ?tier ?role_assignments_multi_iri ?role_assignments_label_multi where {
{
select ?member
(if(min(?rank)=1,"Admin",if(min(?rank)=2,"Maintainer","Member")) as ?tier)
(min(?rank) as ?rankMin)
(group_concat(?latestNp; separator=" ") as ?role_assignments_multi_iri)
(group_concat(?roleLabel; separator="\n") as ?role_assignments_label_multi)
where {
{
select ?member ?roleProp
(min(?rank0) as ?rank)
(sample(?roleLabel0) as ?roleLabel)
(strafter(max(concat(coalesce(str(?dateNp),""), " ", str(?grantNp))), " ") as ?latestNp)
where {
values ?_root_np_multi_iri {}
graph npa:spacesGraph { ?spaceRef npa:rootNanopub ?_root_np_multi_iri ; npa:spaceIri ?spaceIri . }
graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?g . }
graph ?g {
?ri a gen:RoleInstantiation ; npa:forSpaceRef ?spaceRef ; npa:forAgent ?member ; npa:viaNanopub ?grantNp .
}
bind(exists { graph ?g { ?ri npa:inverseProperty gen:hasAdmin } } as ?isAdmin)
optional { graph npa:spacesGraph { ?ri (npa:regularProperty|npa:inverseProperty) ?ropExt } }
optional { graph ?g { ?ri (npa:regularProperty|npa:inverseProperty) ?ropState } }
bind(coalesce(?ropExt,?ropState) as ?roleProp)
optional { graph npa:graph { ?grantNp dct:created ?dateNp } }
# AUTHORITATIVE role + tier + label: the role THIS space assigned (RoleAssignment
# forSpace this space -> gen:hasRole) whose declared predicate matches this row.
optional {
graph npa:spacesGraph {
?assign a gen:RoleAssignment ; npa:forSpace ?spaceIri ; gen:hasRole ?assignedRole .
?rdScoped a npa:RoleDeclaration ; npa:role ?assignedRole ;
(gen:hasRegularProperty|gen:hasInverseProperty) ?roleProp ;
npa:hasRoleType ?scopedType ; npa:viaNanopub ?roleNp .
}
graph npa:graph { ?roleNp np:hasAssertion ?role_a . }
optional { graph ?role_a { ?assignedRole schema:name ?rlS } }
optional { graph ?role_a { ?assignedRole rdfs:label ?rlA } }
optional { graph ?role_a { ?assignedRole dct:title ?rlB } }
bind(coalesce(?rlS,?rlA,?rlB) as ?rl)
}
bind(if(?isAdmin,1,if(?scopedType=gen:MaintainerRole,2,if(?scopedType=gen:MemberRole,3,0))) as ?rank0)
bind(if(?isAdmin,coalesce(?rl,"admin"),coalesce(?rl,"role")) as ?roleLabel0)
}
group by ?member ?roleProp
}
filter(?rank > 0)
}
group by ?member
}
}
order by ?rankMin ?member
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/provenance
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/assertion
http://www.w3.org/ns/prov#wasAttributedTo
https://orcid.org/0000-0002-1267-0234
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/pubinfo
https://orcid.org/0000-0002-1267-0234
http://xmlns.com/foaf/0.1/name
Tobias Kuhn
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok
http://purl.org/dc/terms/created
2026-06-23T13:42:09Z
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok
http://purl.org/dc/terms/creator
https://orcid.org/0000-0002-1267-0234
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok
http://purl.org/dc/terms/license
https://creativecommons.org/licenses/by/4.0/
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok
http://purl.org/nanopub/x/embeds
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/list-space-members
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok
http://purl.org/nanopub/x/supersedes
https://w3id.org/np/RAXhi9zBXJ2mZVmjBm_MZk1xM6OCxxVyr5B3xNYdy6boQ
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/sig
http://purl.org/nanopub/x/hasAlgorithm
RSA
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/sig
http://purl.org/nanopub/x/hasPublicKey
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/sig
http://purl.org/nanopub/x/hasSignature
GSqpN3Vc9coPhxPc67F+NL5LdA3uxKxtVrCLFU4Nc8iEMTihxrpJ9JVVx+Qhj8mQmshrI3JzNQxRMf76p98JMYuL5PZlKdDCoismFl0aFc1FCfDz+lz5al4lNewokB8TgRrVF/wwqKVQ5jy+v8NOnCd88mcAeWVp4wZVviL5aCY=
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/sig
http://purl.org/nanopub/x/hasSignatureTarget
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok
https://w3id.org/np/RAw_6pyy_0Zm71cdZN56HGjS7VGYzADDlQFG953D3pzok/sig
http://purl.org/nanopub/x/signedBy
https://orcid.org/0000-0002-1267-0234